2010-12-05 36 views
0

J'essaie d'attraper des événements onKey à partir d'un clavier virtuel. Cependant, seules quelques touches déclenchent l'événement onKey (Supprimer, Retour, etc.). caractères pas réguliers. Quelqu'un sait pourquoi?Android onKey n'est pas viré pour clavier virtuel sur un Nexus

+0

Exécutez-vous ceci dans un TextView? Si votre curseur est dans un TextView, il ne déclenchera pas l'événement. Le dos, la maison, etc. sont des cas spéciaux. – glr

+0

Je seconde ce gyller, Si vous utilisez un EditText, essayez d'implémenter votre logique avec l'interface TextWatcher. – Shardul

+0

Merci. va essayer l'approche TextWatcher – oriharel

Répondre

2

Si vous tentez de capturer des frappes normales à partir d'une vue EditText, vous devrez utiliser la méthode suivante pour écouter les pressions sur les touches. Votre méthode onTextChanged sera déclenchée à chaque pression de touche, ce qui vous permet de faire ce que vous devez faire.

mEditText.addTextChangedListener(new TextWatcher(){ 
    @Override 
    public void afterTextChanged(Editable editable){    
    } 
    @Override 
    public void beforeTextChanged(CharSequence text, int start, int count, int after){    
    } 
    @Override 
    public void onTextChanged(CharSequence arg0, int start, int before, int count) { 
     //doStuff    
    } 
}); 
+0

Merci. va essayer l'approche TextWatcher – oriharel

+0

Pas moyen de tirer EditText # Méthode setText sous TextWatcher, ce qui provoquera une erreur stackoverflow. –