2010-04-05 10 views
8

voglio mettere il pulsante "Vai" nella softkey appliation androidcome aggiungere il pulsante Vai in Android SoftKeyBoard e le sue funzionalità?

per la ricerca e altri scenari correlati, qualcuno può guidarmi come raggiungere questo obiettivo? con esempio.

qualsiasi aiuto sarebbe appagato.

+0

ho pensato che fosse qualcosa di automatico ... – confiq

+0

Vedere questa domanda da un paio di giorni fa: http://stackoverflow.com/questions/2568637/how-to-disable-next-button-on-a-ittext-software -keyboard-replace-with-done –

risposta

24

finalmente ho usato ...

EditText SearchEditText =(EditText)findViewById(R.id.txtMapSearch); 
SearchEditText.setOnEditorActionListener(new OnEditorActionListener(){ 

    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
     if(arg1 == EditorInfo.IME_ACTION_SEARCH) 
     { 
      // search pressed and perform your functionality. 
     } 
     return false; 
    } 

}); 
+1

Per aggiungere un punto, se la tastiera mostra un pulsante FATTO in basso a destra, utilizza invece EditorInfo.IME_ACTION_DONE. – Rorchackh

+0

Un collegamento alla documentazione: http://developer.android.com/training/keyboard-input/style.html#Action –

14

Se la tua domanda è che si dispone di un EditText o modificabile TextView, e si desidera che il pulsante di azione proprio sul SoftKeyboard a leggere "Go" quindi aggiungere questo attributo al tuo EditText/TextView

android:imeActionLabel="actionGo" 

nota che dovrà anche essere una singola riga di testo, altrimenti il ​​pulsante di azione sarà un selettore di ritorno a capo (una freccia).

android:singleLine="true" 
+0

in realtà voglio eseguire funzionalità come premendo il pulsante di ricerca sull'attività su questo tasto della tastiera soft key. – UMAR

+0

@Jim Blackler Come posso eseguire un'azione quando l'utente fa clic sul pulsante actionGo nella tastiera? – Enve

1

sto facendo questo per lo stesso "invia":

utilizzare questa classe nel layout:

public class ActionEditText estende EditText { public ActionEditText (Contesto contesto) { super (contesto); }

public ActionEditText(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 
} 

public ActionEditText(Context context, AttributeSet attrs, int defStyle) 
{ 
    super(context, attrs, defStyle); 
} 

@Override 
public InputConnection onCreateInputConnection(EditorInfo outAttrs) 
{ 
    InputConnection conn = super.onCreateInputConnection(outAttrs); 
    outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION; 
    return conn; 
} 

}

in XML:

<com.test.custom.ActionEditText 
      android:id="@+id/postED" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@android:color/transparent" 
      android:gravity="top|left" 
      android:hint="@string/msg_type_message_here" 
      android:imeOptions="actionSend" 
      android:inputType="textMultiLine" 
      android:maxLines="5" 
      android:padding="5dip" 
      android:scrollbarAlwaysDrawVerticalTrack="true" 
      android:textColor="@color/white" 
      android:textSize="20sp" /> 
1

ho usato

android:imeOptions="actionGo" 

e per gestire andare azione I m utilizzando

etSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE) { 
        //your functionality 

        // hide virtual keyboard 
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(etSearch.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); 

        return true; 
       } 
       return false; 
      } 
     }); 
Problemi correlati