J'essaye de créer un EditText
avec la capitalisation automatique et la correction automatique mises en application. J'ai manuellement trouvé comment ajouter InputFilter
s pour permettre la capitalisation automatique, bien que cela fonctionne seulement après la première lettre est tapée, et je n'ai eu aucune chance avec la correction automatique (j'ai essayé de créer un InputFilter qui a utilisé AutoText
, mais Je ne suis pas sûr de comment tout cela fonctionne). Idéalement, je pourrais simplement utiliser EditText.setInputType (...) pour tout gérer, mais jusqu'à présent cela n'a pas fonctionné. Y a-t-il un moyen d'y parvenir? Ma tentative échouée est montrée ci-dessous (je reçois juste une entrée normale).Comment définir plusieurs types d'entrée dans un EditText sur 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);
S'il vous plaît noter, je ne suis intéressé par les solutions pour la création de ce EditText
dans le code - et non via XML.
Modifier
J'ai trouvé son nouveau documentation décrivant TextKeyListener, mais après avoir essayé d'utiliser:
mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));
et en utilisant l'idée de @ farble1670 d'utiliser setRawInputType
, afin de ne pas affecter la KeyListener
s, il n'y a toujours pas de changement au texte.
Merci, cela m'a conduit dans une nouvelle direction, et j'ai trouvé le 'TextKeyListener'. La seule chose est - cela ne semble pas fonctionner non plus ... – Phil