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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top