2010-01-07 7 views
2

J'utilise un simple EditText et enregistrez un View.OnKeyListener. Certaines modifications de l'interface utilisateur doivent se produire (apparition/disparition progressive des vues) lorsque certaines conditions s'appliquent au texte EditView. Dans l'émulateur, cela fonctionne comme prévu. Sur le Motorola Droid/Milestone, l'auditeur ne fonctionne pas, neAndroid (Milestone/Droid): View.OnKeyListener ne fonctionne pas correctement?

  1. après avoir appuyé sur DEL, l'auditeur est appelé la première fois et toujours après
  2. lors de l'activation de l'entrée numérique, l'auditeur fonctionne correctement

Remarque: J'ai désactivé les suggestions avec TYPE_TEXT_FLAG_NO_SUGGESTIONS et utilisé l'action IME IME_ACTION_GO pour contourner ce problème (sinon, l'utilisateur ne pouvait pas "démarrer" une requête).

+0

Même problème avec xperia. Seul DEL est envoyé à onKeyListener, mais le reste des touches modifie directement le texte. Si je change le clavier pour le clavier Hackers, la situation est différente. Donc, je suppose que cela a à voir avec le clavier logiciel Sony. –

Répondre

5

Trouvé une meilleure façon de travailler: EditText.addTextChangedListener avec une classe TextWatcher (et mettre en œuvre TextWatcher.onTextChanged(CharSequence s, int start, int before, int count)), fonctionne parfaitement sur le Milestone/Droid.

0

TextWatcher ne peut pas remplacer entièrement onKeyListener. Par exemple, si votre zone de texte est vide, comment détecteriez-vous cet utilisateur appuyé sur la touche DEL? Ou, que se passe-t-il si vous n'avez pas de zone de texte et que vous souhaitez détecter les événements clés?

Questions connexes