Android événement-clé pour la touche de retour lors du clavier virtuel est affiché?
Je suis en train d'essayer de capturer la touche "retour" de l'événement lorsque le clavier virtuel est affiché.
Je suis en utilisant le SDK ver 8 et peut réussir à capturer l'arrière-clés de l'événement UNIQUEMENT lorsque le clavier est CACHÉ comme suit:
@Override
public void onBackPressed() {
//do something
super.onBackPressed();
}
Le problème est que le système n'est pas à l'appel de cette méthode alors que le clavier est affiché. J'ai essayé de vous onKeyDown/Haut() les méthodes ainsi que la méthode ci-dessus pour travailler ce qui se passe dans ce scénario, en vain. Voir ci-dessous:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
//DEBUGGING
Log.d(TAG + "KeyUP", String.valueOf(event));
}
Journaux sont retournés pour le volume de menu et les touches comme prévu, mais la touche retour en arrière n'est enregistré lorsque le clavier virtuel et menu sont cachés.
Sont-il "touche retour" gourou qui peuvent expliquer ce phénomène?
Toute aide est grandement appréciée.
OriginalL'auteur dan | 2013-10-28
Vous devez vous connecter pour publier un commentaire.
Ici est la façon de capter l'arrière appuyez sur la touche de l'événement:
1. Étendre editText vue de remplacer onKeyPreIme
ChatEditText en xml
Puis attacher un écouteur (setKeyImeChangeListener) pour l'édition de texte:
solution parfaite, merci beaucoup
OriginalL'auteur Sumit Saurabh
Après creuser autour davantage sur ce site et de l'API Android, j'ai trouvé que
est pris et englouti par un éditeur qui a une méthode de saisie de connexion et que la méthode de saisie est affichée (en d'autres mots, le clavier n'est PAS caché). Cela signifie que l'événement est consommé avant le système appelle les classes d'Activité onKeyDown() ou onKeyUp() méthodes.
Pour contourner ce problème, créez une sous-classe de votre IME widget (TextView ou de ses enfants des classes comme EditText) et de mettre en œuvre onKeyPreIme().
Pile utilisateur i2097i a affiché une bonne solution pour la mise en œuvre de onKeyPreIme() dans une activité ici.
Assurez-vous de retourner FALSE dans votre onKeyPreIme() Remplacer si vous souhaitez conserver des Androïdes comportement par défaut (c'est à dire fermer le clavier).
OriginalL'auteur dan
Généralement le bouton retour permet de masquer le clavier (nateve behaivor), de sorte qu'il n'est pas une bonne idée de faire quelque chose avec ce
OriginalL'auteur Joan P.S