2011-09-28 11 views

risposta

139

Prova questa

editText.setOnEditorActionListener(new OnEditorActionListener() {   
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if(actionId==EditorInfo.IME_ACTION_DONE){ 
      //do something 
     } 
    return false; 
    } 
}); 
+1

Grazie, ha funzionato ... –

15

Prova questa

Funziona sia per FATTO e RETURN.

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

       @Override 
       public boolean onEditorAction(TextView v, int actionId, 
         KeyEvent event) { 
        if (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER 
          || actionId == EditorInfo.IME_ACTION_DONE) { 
         // Do your action 
         return true; 
        } 
        return false; 
       } 
      }); 
0

si cattura il KeyEvent e poi controllarne il codice chiave. FLAG_EDITOR_ACTION viene utilizzato per identificare immettere le chiavi che vengono da un IME cui entrare chiave è stata auto-etichettato come "next" o "fatto"

if (event.getKeyCode() == KeyEvent.FLAG_EDITOR_ACTION) 
    //your code here 

Trova la documentazione here.

Secondo metodo

myEditText.setOnEditorActionListener(new OnEditorActionListener() { 
@Override 
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) { 
    int result = actionId & EditorInfo.IME_MASK_ACTION; 
    switch(result) { 
    case EditorInfo.IME_ACTION_DONE: 
     // done stuff 
     break; 
    case EditorInfo.IME_ACTION_NEXT: 
     // next stuff 
     break; 
    } 
} 
}); 
0

Prova questa

Questo funziona sia in condizioni se la tastiera sta mostrando immettere segno o seguente freccia segno

YourEdittextName.setOnEditorActionListener(new TextView.OnEditorActionListener() 
    { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
     { 
      if(actionId== EditorInfo.IME_ACTION_DONE||actionId==EditorInfo.IME_ACTION_NEXT) 
      { 
       //Perform Action here 
      } 
      return false; 
     } 
    }); 

se ur rivolto linea rossa quindi fai questo ... import Keyevent e EditorInfo premendo alt + invio quindi tutti gli errori rimuoveranno correttamente .......