2010-11-17 9 views
6

Si (dans Android) j'ai une boîte EditText, comment puis-je déclencher un événement lorsque l'utilisateur a fini d'entrer des données et qu'il renvoie des résultats/Suivant?Comment déclencher une action lorsque l'utilisateur a appuyé sur Entrée?

J'ai essayé d'utiliser le code ci-dessous mais il semble n'avoir aucun effet. Je reçois également une 'La méthode onEditorAction (EditText, int, KeyEvent) à partir du type nouvelle erreur extView.OnEditorActionListener() {} n'est jamais utilisée localement'.

myEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() { 
      public boolean onEditorAction(EditText v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_NEXT) 
       { 

Répondre

9

J'ai joué un peu avec des choses différentes et a constaté que le code ci-dessous fonctionne:

myEditText.setOnEditorActionListener(new OnEditorActionListener() {      
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     // Do some stuff 
    } 
}); 
3

Ajoutez un KeyListener à la zone de texte qui écoute les événements clés. Dans l'événement clé, écoutez la touche "ENTER" enfoncée et effectuez votre action.

Vous pouvez trouver quelque chose de similaire ici: Android Development: How To Use onKeyUp? et dans les documents pour UI-Events.

Un bon exemple est dans la question SO liée. Après cela, vous devriez obtenir le résultat souhaité.

+0

Comme spécifié dans la documentation Android, le logiciel par défaut Le clavier n'enverra jamais d'événement clé à une application ciblant Jelly Bean ou une version ultérieure, et enverra uniquement des événements pour certaines pressions sur les touches supprimer et retourner à des applications ciblant Ice Cream Sandwich ou plus tôt. –

4

Je crois que vous voulez est la méthode setOnEditorActionListener(), dev guide info here on the method.

+0

Méthode interessante. Je n'ai jamais vu celui-là ... Je vais le garder à l'esprit. – DrColossos

+1

@DrColossos Plus d'informations similaires par @CommonsWare http://stackoverflow.com/questions/1489852/android-handle-enter-in-an-edittext/1489895#1489895 –

+0

Merci. Est-ce que cela fonctionnerait aussi si quelqu'un cliquait sur l'EditText et cliquait dessus. Peut-être géré par une commande de perte de focus? – Entropy1024

Questions connexes