Не могу отключить интеллектуальный ввод текста

Я пытаюсь отключить интеллектуальный текст для данного EditText, как описано здесь, но я все еще получить автозаполнение по прогнозу...

У меня Samsung Galaxy S с включенным XT9.

Кто-нибудь может помочь?

<EditText
    android:id="@+id/search_field"
    android:layout_width="300dp"
    android:layout_height="27dp"
    android:background="@drawable/bg_searchfield"
    android:hint="@string/search_hint"
    android:imeOptions="actionSearch"
    android:inputType="text|textNoSuggestions|textFilter"/>

person jul    schedule 08.05.2012    source источник


Ответы (4)


Комментарий от этого вопроса SO предполагает, что атрибут xml не работает для некоторые модели, но в этих случаях работает java-метод. Итак, попробуйте следующее:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

изменить:

Как предложено в комментарии ниже, здесь работает альтернатива xml:

android:inputType="textNoSuggestions|textVisiblePassword"
person keyser    schedule 08.05.2012
comment
Мне пришлось установить android:inputType=textNoSuggestions|textVisiblePassword. Я приму ваш ответ за указатель на ответ. Спасибо. - person jul; 08.05.2012
comment
Я пробовал с mEt_text.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); и это сработало для меня. - person Ankit; 03.01.2014
comment
Этот ответ имеет свой компромисс. Попробуйте стереть букву в конце текста после использования этого метода. Вы должны долго нажимать клавишу стирания, и когда она начнет стирание, она стирает весь текст. - person Maxime Claude; 25.01.2017
comment
то же, что и просто textVisiblePassword - person Leo Droidcoder; 26.08.2017
comment
это не работает, если вы хотите показать textCapCharacters|textNoSuggestions|textVisiblePassword - person rafaelasguerra; 15.10.2019
comment
Это вызовет проблемы с многоязычной клавиатурой. - person sanjeeb; 07.05.2020

android:inputType="textNoSuggestions|textVisiblePassword"

Это решение работает, но вы должны быть осторожны с ним. Вы не можете переключать язык клавиатуры на устройствах HTC (вероятно, причина в клавиатуре Sense), если установлен флаг textVisiblePassword.

Поэтому мне пришлось установить InputType из кода и написать что-то вроде этого:

    public static int getInputTypeForNoSuggestsInput() {
    if (android.os.Build.MANUFACTURER.equalsIgnoreCase("Samsung")) {
        return InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
                | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
    } else {
        return InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
    }
person macros013    schedule 25.11.2015
comment
Работает на меня. Есть ли необходимость добавить выше, если условие. - person arshad shaikh; 24.02.2017

Единственное решение, которое помогло мне увидеть правильный шрифт в подсказке и в тексте с помощью Calligraphy:

  • Установите свой пароль EditText в свой xml с помощью android:inputType="textNoSuggestions|textVisiblePassword"
  • Настройте свой EditText программно с помощью: passwordET.transformationMethod = PasswordTransformationMethod()

Это будет:

  1. Показать правильный шрифт в подсказке
  2. Показать правильный шрифт в тексте
  3. Покажите правильный шрифт, если у вас есть TextInputLayout
  4. Не будет показывать предложения или прогнозы на клавиатуре.
person Rafael Ruiz Muñoz    schedule 12.07.2018

Большинство решений, приведенных выше, не работали для меня. Поэтому я сделал обходной путь.

Создайте InputFilter со следующим в методе фильтра:

for (char ch:BLOCKED_CHARACTER_SET.toCharArray()){
                if (source != null && source.toString().contains(ch+"")) {
                    return "";
                }
            }

Здесь BLOCKED_CHARACTER_SET — это строка, содержащая символы, которые мы хотим заблокировать.

Затем установите текст редактирования

editText.setFilters(new InputFilter[]{filterUsername, new InputFilter.LengthFilter(LENGTH)});
person sanjeeb    schedule 15.05.2020