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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top