Próbuję utworzyć EditText
z zaimplementowaną automatyczną kapitalizacją i automatyczną korektą. Ręczne ustalenie, jak dodać InputFilter
s, aby umożliwić automatyczne kapitalizacja, ale działa tylko po pierwsza litera jest wpisana, a ja nie miałem szczęścia z automatyczną korektą (próbowałem stworzyć InputFilter, który użył AutoText
, ale Nie jestem pewien, jak to wszystko działa). Idealnie, mógłbym użyć EditText.setInputType (...), aby obsłużyć wszystko, ale jak dotąd to nie zadziałało. Czy istnieje sposób, aby to osiągnąć? Moja nieudana próba została pokazana poniżej (po prostu otrzymuję normalne dane wejściowe).Jak ustawić wiele typów danych wejściowych w EditText na Androidzie?
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);
Należy pamiętać, że jestem zainteresowany tylko w rozwiązaniach dla tworzenia tej EditText
w kodzie - nie za pomocą XML.
Edit
znalazłem dźwięk nowa dokumentacja opisująca TextKeyListener jednak po próbuje to wykorzystać:
mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));
i używając pojęcia @ farble1670 za korzystania setRawInputType
, tak aby nie wpływać na KeyListener
s, wciąż nie ma zmian w tekście.
Dzięki, doprowadziłem mnie do nowego kierunku i znalazłem 'TextKeyListener'. Jedno jest pewne - to też nie działa ... – Phil