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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top