Je crée un écran de connexion avec 2 editTexts : etUsername et etPassword.
Dans le champ etUsername, l'utilisateur doit saisir son nom d'utilisateur et appuyer sur Enter pour accéder au texte d'édition etPassword, puis il saisit son mot de passe et appuie sur Enter pour se connecter. Voici mon code actuel :
etUsername.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_ENTER)) {
etPassword.requestFocus();
return true;
} else
return false;
}
});
etPassword.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_ENTER)) {
loginToServer();
return true;
} else
return false;
}
});
Mais lorsque je saisis le nom d'utilisateur et que j'appuie sur la touche Entrée, le programme tente de se connecter au serveur.
Dans le mode de débogage, j'ai vu que lorsque j'appuyais sur Enter une fois (sur le etUsername) alors d'abord : etUsername.onKey() est appelé et ensuite etPassword.onKey() est aussi appelé !
Comment puis-je modifier le code pour que l'événement ENTER ne soit traité qu'une seule fois pour le champ en cours ?