Я пытаюсь создать EditText
с автокапитализацией и автокоррекцией.Я вручную выяснил, как добавить InputFilter
s, чтобы разрешить автокапитализацию, хотя это работает только после , когда набирается первая буква, и мне не повезло с автокоррекцией (я пытался создатьInputFilter, который использовал AutoText
, но я не уверен, как все это работает).В идеале я мог бы просто использовать EditText.setInputType (...) для обработки всего, но пока это не сработало.Есть ли способ добиться этого?Моя неудачная попытка показана ниже (я просто получаю нормальный ввод).
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);
Обратите внимание, меня интересуют только решения для создания этого EditText
в коде, а не через XML.
Редактировать
Я нашел новую документацию, описывающую TextKeyListener , однако после попытки использовать это:
mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));
и используя @ farble1670 идею использования setRawInputType
, чтобы не влиять на KeyListener
s, в тексте по-прежнему нет изменений.