2010-11-23 20 views
8

Comment puis-je détecter les touches de manière fiable avec un clavier dur ou un clavier logiciel?Clavier virtuel sans EditText et touches de détection

Mon application contrôle à distance un autre appareil via le wifi, et j'ai besoin de détecter chaque pression sur un clavier doux ou dur. Je n'ai pas vraiment besoin d'un EditText car j'ai juste besoin d'envoyer les caractères un à la fois quand ils sont pressés et n'ont pas besoin de la chaîne de texte finale.

J'ai essayé d'utiliser un EditText avec OnKeyPress, mais j'ai rencontré les problèmes here sans avoir à appuyer sur des touches avec des claviers souples. Et TextWatcher n'est pas une bonne option car j'ai besoin de chaque touche.

Je vais utiliser un EditText si je le dois, mais je préférerais ne pas le faire. Ce que je veux vraiment est:

  • Apportez un clavier souple lorsque l'utilisateur touche un bouton de recherche
  • utilisateur appuie sur les touches et je transmettre les codes à distance appareil. Ne pas vraiment besoin de voir quoi que ce soit à l'écran dans un EditText car il sera affiché sur le périphérique distant
  • utilisateur appuie sur le bouton Fait sur commande sur le clavier souple pour fermer

Toutes les suggestions?

+1

avez-vous trouvé un moyen de le faire encore? –

+0

Jetez un oeil à [ce] [1] post. Cela fonctionne pour moi. Testé sur SGS II. [1]: http://stackoverflow.com/questions/4579544/can-i-use-the-soft-keyboard-without-an-edittext/6954401#6954401 – miha

Répondre

1

Eh bien, vous pouvez remplacer le [onKeyDown(int keyCode, KeyEvent event)] [1] et (ou) [onKeyUp(int keyCode, KeyEvent event)] [2] méthodes dans les applications de classe d'activité, cela vous permettra d'obtenir une notification même sur ces clés comme la clé de retour et d'autres clés matérielles ...

note: vous pouvez obtenir une notification sur le mouvement de boule de commande et ainsi de suite ...

[1]: http://developer.android.com/reference/android/view/View.html#onKeyDown(int, android.view.KeyEvent) [2]: http://developer.android.com/reference/android/view/View.html#onKeyUp(int, android.view .KeyEvent)

+1

Merci, mais ce n » Je ne semble pas travailler avec un clavier souple. Je surcharge OverKeyDown et il n'est pas déclenché avec des lettres ou des chiffres. –