Invia informazioni da EditText a IME
-
23-10-2019 - |
Domanda
Sto scrivendo un'applicazione l'apprendimento delle lingue, attualmente solo in tedesco <-> russo.
Ci sono diversi EditTexts
dove si suppone che l'utente per immettere il testo in una o l'altra lingua. Come nelle lingue utilizzano alfabeti diversi, l'applicazione utilizza la propria tastiera software implementando InputMethodService
e fornendo sia il layout della tastiera latina e cirillico. E 'noto per ogni campo EditText
quale ci si attende la lingua.
Quello che vorrei è che, per esempio, ogni volta che un campo EditText
attesa russo è a fuoco, dovrebbe essere visualizzato il layout di tastiera cirillico. Una volta selezionato, il EditText
dovrebbe passare qualche costante al IME, che quest'ultimo può utilizzare per decidere se visualizzare in modalità latino o cirillico.
In teoria, si potrebbe semplicemente specificare alcune InputType
personalizzato per il EditText
ma che non sembra essere possibile, vero? Qual è l'approccio corretto qui?
Soluzione
La tua idea non suona male. controllo del codice di IME per la InputType
in un blocco interruttore e il layout di tastiera di default viene visualizzato se l'InputType
non corrisponde.
Si può anche fornire un metodo di logica nel onCreate()
della vostra Activity
per verificare quale metodo di input è attivo e con queste informazioni scegliere quale inputType
tua EditText
dovrebbe avere.