Sto cercando di creare uno EditText
con la maiuscola automatica e la correzione automatica implementata. Ho capito manualmente come aggiungere InputFilter
s per consentire l'auto-capitalizzazione, anche se questo funziona solo dopo la prima lettera viene digitato, e non ho avuto fortuna con correzione automatica (ho cercato di creare un InputFilter che ha usato AutoText
, ma Non sono sicuro di come tutto funzioni). Idealmente, potrei semplicemente usare EditText.setInputType (...) per gestire tutto, ma finora questo non ha funzionato. C'è un modo per ottenere questo? Il mio tentativo fallito è mostrato sotto (ho appena ricevuto input normale).Come imposto più tipi di input in un EditText su Android?
EditText mEditText = new EditText(this);
int inputType = InputType.TYPE_CLASS_TEXT;
if (auto_capitalize) {
inputType = mEditText.getInputType() | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS;
}
if (auto_correct) {
inputType = mEditText.getInputType() | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT;
}
mEditText.setInputType(inputType);
Si prega di notare, mi interessa solo in soluzioni per la creazione di questo EditText
nel codice - non tramite XML.
Modifica
ho trovato il suono nuova documentazione che descrive TextKeyListener, tuttavia dopo aver tentato di usare questo:
mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));
e usando idea di @ farble1670 di utilizzare setRawInputType
, in modo da non influenzare il KeyListener
s, non c'è ancora alcuna modifica al testo.
Grazie, questo mi ha portato in una nuova direzione, e ho trovato il 'TextKeyListener'. L'unica cosa è che non sembra funzionare neanche ... – Phil