Встала задачка — отключить автокоррекцию ввода в EditText. Пару часов провозился…зря =_=
Бывает, что необходимо отключить автокоррекцию. Если у юзера на устройстве T9 отрублен, то траблов нет. А как программно это сделать? Я уже писал про TextWatcher для обработки ввода в EditText. Как пример, можно бы было перед редактирование в beforeTextChanged
установить указатель в начало строки setSelection(0)
, а в afterTextChanged
установить на редактируемое место. Не прокатит, да и все возможные вариации с setSelection
не прокатят. А простого метода для отмены выделения, типо clearSelection
нету. Что же делать? Оказалось всё до безобразия просто.
Для типа textVisiblePassword
автокоррекции нету. Ну…ясно, пароль и всё такое. Так что, если хотим отрубить автокоррекцию, то просто в xml в inputType элемента напишем это:
android:inputType="text|textVisiblePassword"
Или программно зададим:
textEdit.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
На устройствах работает нормально, но на некоторых эмуляторах нет. Ясно, что для тестирования приложения вы не станете покупать все варианты устройств. Не пойму, зачем выделение и простую установку указателя объединили одним методом и не предусмотрели очистку выделения =/