Senden Sie Informationen von editText an IME
-
23-10-2019 - |
Frage
Ich schreibe eine Sprachlern-App, derzeit nur deutsches <--> Russisch.
Es gibt einige EditTexts
wo der Benutzer Text in die eine oder andere Sprache eingeben soll. Da diese Sprachen unterschiedliche Alphabete verwenden, verwendet die App eine eigene Softtastatur durch Implementierung InputMethodService
und sowohl lateinische als auch kyrillische Tastaturlayout. Es ist für jeden bekannt EditText
Feld, welche Sprache erwartet wird.
Was ich möchte, ist das, z. B. wann immer ein EditText
Feld erwartet, dass Russisch im Fokus steht, sollte das kyrillische Tastaturlayout angezeigt werden. Bei der Auswahl die EditText
Sollte einige Konstante an das IME weitergeben, mit dem letztere entscheiden kann, ob sie im lateinischen oder kyrillischen Modus angezeigt werden sollen.
Im Idealfall würde man einfach einige benutzerdefinierte angeben InputType
für die EditText
Aber das scheint nicht möglich zu sein, oder? Was ist hier der richtige Ansatz?
Lösung
Ihre Idee klingt nicht schlecht. IMEs Codeprüfung auf die InputType
In einem Switch -Block und das Standard -Tastaturlayout wird angezeigt, wenn die InputType
Nicht übereinstimmte.
Sie können auch eine Logik in geben onCreate()
Methode Ihrer Activity
Um zu überprüfen, welche Eingabemethode aktiv ist, und mit diesen Informationen wählen Sie welche aus, welche inputType
dein EditText
sollte haben.