J'essaie de convaincre un EditText
-view d'utiliser uniquement le SoftKeyboard que j'ai écrit. Cela m'embête déjà depuis quelques jours et je n'arrive pas à croire que ce n'est pas possible. Je pourrais ne pas voir l'évidence ...Android: Attachez un SoftKeyboard (InputMethodService) à un EditText
Jusqu'à présent, j'ai réussi à écrire mon propre SoftKeyboard basé sur l'exemple fourni avec le SDK Android. Je suis en mesure de le sélectionner manuellement comme méthode de saisie (clic long, méthode de saisie, * sélection *). Le SoftKeyboard fonctionne alors bien et fait tout ce que je veux. J'ai également nettoyé le menu contextuel pour interdire le changement de la méthode d'entrée (évidemment, j'avais besoin d'être dans le menu sinon je ne serais pas capable de choisir mon SoftKeyboard). En d'autres termes, il ne reste plus qu'à attacher le SoftKeyboard au EditText
.
J'ai remarqué le tas de ime*
-attributs sur le EditText
, mais ils ne semblent pas être utiles pour mon problème car je ne veux rien changer à propos de la clé d'action. inputMethod
nécessite un KeyListener
, ce qui n'est pas le cas du SoftKeyboard (j'ai essayé d'en faire un, mais il semble y avoir un problème avec le chargeur de classe car il ne trouverait pas ma classe =>ClassNotFoundException
).
Quelqu'un peut-il me diriger vers des informations utiles?
Oui, vous avez compris mon problème. Je ne veux pas laisser l'utilisateur changer la méthode de saisie car l'application a une logique supplémentaire pour les touches enfoncées. L'utilisateur est bien conscient de cela (rien d'illégal de toute façon). En fait, je ne voudrais pas que la méthode d'entrée soit disponible pour tout autre EditText autre que le mien car cela causerait beaucoup de problèmes autrement.Fondamentalement, j'ai besoin de savoir si mon application a le focus et montrer un dialogue sinon. Bon point! Je vais aussi chercher à forcer mon interface utilisateur à apparaître sur un robinet. – sjngm
@sjngm: "En fait, je ne voudrais pas que la méthode d'entrée soit disponible pour tout autre EditText autre que le mien car cela causerait beaucoup de problèmes autrement." - Certainement pas un bon rôle pour le service de méthode d'entrée, alors. Cependant, vous pouvez toujours utiliser 'KeyboardView'. – CommonsWare
@cw: Droit. J'essaie actuellement d'obtenir le clavier sur l'écran. Cependant, j'échoue misérablement là (c'est mon premier projet Android de toute façon ...). L'exemple SoftKeyboard utilise une classe sous-classée dans KeyboardView. J'espère juste qu'une fois que je l'aurai sur l'écran, le reste fonctionnera "automatiquement". J'ai le clavier dans la disposition, mais le champ de saisie doit être en plein écran. Le clavier doit apparaître en quelque sorte ... – sjngm