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"