Android программно отключает автозаполнение/автозагрузку для EditText в эмуляторе

Ориентация на Android 2.2

Я прочитал ответы на следующие вопросы:

Отключить автозагрузку для EditText?

Android: многострочный и без автозапуска в EditText

Я испробовал следующие варианты предложений:

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER);

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

Все эти работы работают на большинстве устройств, которые я тестировал (Droid X, Droid 2, Thunderbolt, Incredible), но не работают на эмуляторе и не менее чем на одном устройстве (Samsung GT i5500).

Есть ли другой способ программно отключить автозаполнение/автозагрузку для EditText таким образом, чтобы эмулятор и некоторые устройства распознавали и уважали?

Ответ 1

Для Vodafone 845 (2.1), устройств huawei 8800 (2.2), текстVisiblePassword, кажется, предотвращает предсказание слов.

    vendorId.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

или

Android: inputType = "textVisiblePassword"

Ответ 2

В макете XML добавьте следующий атрибут к вашему EditText:

android:inputType="text|textNoSuggestions"

Если ни это, ни вышеописанные подходы не работают, то это почти наверняка проблема с эмулятором и другим устройством, и вы должны напрямую связаться с производителями.

Смотрите также: android: inputType (обратите внимание, что EditText является подклассом TextView, поэтому этот атрибут также работает для EditTexts).

Ответ 3

Я пробовал все вышеперечисленное, и ничто из этого не помогло мне. Я просматриваю доступные InputTypes, и я придумал решение, которое оказалось TYPE_TEXT_FLAG_AUTO_COMPLETE:

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

Из описания:

Это обычно означает, что метод ввода не должен отображаться сами кандидаты, но может ожидать, что редактор предоставит свои собственные завершений/кандидатов из InputMethodSession.displayCompletions().

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

PS. Флаг InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, упомянутый в примечании выше, также делает этот трюк, но он также отключает, переключая язык на клавиатуре.

Ответ 4

лично, этот код поможет мне:

autoCompleteTextView.setAdapter(null);
autoCompleteTextView.setText(address);
autoCompleteTextView.setAdapter(adapter);

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

поэтому, если вы хотите отключить предложение, просто используйте:

autoCompleteTextView.setAdapter(null);

Ответ 5

Вы можете использовать класс AutoCompleteTextView и установить адаптер, который ничего не содержит Ссылка на класс AutoCompleteTextView

Пример

 public class CountriesActivity extends Activity {
   protected void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.countries);

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
             android.R.layout.simple_dropdown_item_1line, COUNTRIES);
     AutoCompleteTextView textView = (AutoCompleteTextView)
             findViewById(R.id.countries_list);
     textView.setAdapter(adapter);
   }

   private static final String[] COUNTRIES = new String[] {""};
 }

Ответ 6

Использование android:inputType="textNoSuggestions|textVisiblePassword" для Edittext устраняет проблему.

Ответ 7

Я сражался с той же проблемой в эмуляторе. Во время тестирования я понял, что появление не было обычным автозаполнением, а специальным предварительным просмотром азиатских символов (по-видимому, потому, что для генерации одного азиатского символа требуется несколько ключей). Поэтому я решил это, установив язык на английский. Я думаю, что то, что я видел, это опция "Key Preview", указанная в разделе "Японский IME" в "Язык и клавиатура".

Я предполагаю, что было бы довольно сложно отключить это в отдельном приложении, не вникая в обработку клавиатуры и поддержку языка.

Ответ 8

Вы также можете использовать следующее для отключения автоматического предложения на любом редакторе.

<EditText>
android:inputType="textNoSuggestions|textVisiblePassword"
</EditText>

Это сработало для меня.

Ответ 9

Вы можете просто использовать метод EditText setThreshold(). Установите пороговое значение, чтобы сказать 100, когда вы не хотите показывать прогнозы. Если вы хотите повторно активировать показ прогнозов, установите его в малый int, например 1 или 2, в зависимости от ваших потребностей.

Ответ 10

'oninput' на входе, выполнялась следующая функция:

function RefreshAutoComplete(elm) {
elm.keyup();
elm.focus();
}

Я запускаю автоматическое завершение вручную, и он работает

Спасибо всем за помощь

Ответ 11

Ответ, соответствующий правильному, неисправен. Чтобы отключить автоматическое предложение, добавьте следующее свойство в ваш EditText XML

android:inputType="textFilter"