Envoyer des informations de EditText à IME
-
23-10-2019 - |
Question
J'écris une application d'apprentissage des langues, actuellement seulement en allemand <-> russe.
Il y a plusieurs EditTexts
où l'utilisateur est censé entrer du texte dans l'une ou l'autre langue. Comme ces langues utilisent des alphabets, l'application utilise son propre clavier souple en mettant en œuvre InputMethodService
et fournissant à la fois la mise en page du clavier latin et cyrillique. Il est connu pour chaque champ de EditText
quelle langue est attendue.
Ce que je voudrais que, par exemple, chaque fois qu'un champ EditText
attend russe est mise au point, la disposition du clavier cyrillique doit être affiché. Une fois sélectionné, le EditText
doit passer une constante à l'IME, que celui-ci peut utiliser pour décider si vous souhaitez afficher en mode latin ou cyrillique.
Idéalement, on semble simplement indiquer une InputType
personnalisée pour le EditText
mais cela ne pas être possible, non? Quelle est l'approche correcte ici?
La solution
Votre idée ne semble pas mauvaise. chèque de code de l'IME pour InputType
dans un bloc de commutation et la disposition du clavier par défaut est affiché si l'InputType
ne correspond pas.
Vous pouvez également fournir une logique dans la méthode de onCreate()
de votre Activity
pour vérifier la méthode d'entrée est active et avec cette information qui inputType
choisir votre EditText
devrait avoir.