Comment définir plusieurs types d'entrée dans un EditText sur Android?

Je suis en train de créer un EditText avec la mise en majuscules automatique et l'auto-correction de la mise en œuvre. J'ai manuellement de comprendre comment ajouter InputFilters pour permettre la mise en majuscules automatique, bien que cela ne fonctionne que après la première lettre est tapée, et j'ai pas eu de chance avec auto-correction (j'ai essayé de créer un InputFilter utilisé AutoTextmais je ne suis pas sûr de savoir comment tout cela fonctionne). Idéalement, je pouvais EditText.setInputType(...) qui se charge de tout, mais jusqu'à présent cela n'a pas fonctionné. Est-il un moyen pour y parvenir? Ma tentative a échoué, est présenté ci-dessous (je viens d'obtenir l'entrée normale).

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);

Veuillez noter, je suis seulement intéressé dans les solutions pour la création de ce EditText dans le code - pas via XML.

Modifier

J'ai trouvé le son de la nouvelle documentation décrivant TextKeyListenercependant, après avoir essayé d'utiliser cette:

mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));

et à l'aide de @farble1670 l'idée d'utiliser setRawInputTypeafin de ne pas affecter la KeyListeners, il n'y a toujours pas de changement pour le texte.

source d'informationauteur Phil