Есть ли способ программно отключить этот список автозагрузки, который появляется при вводе в EditText?
Выключить автозапуск для EditText?
Ответ 1
У меня был тот же вопрос, но я все еще хотел установить этот параметр в своем XML файле, поэтому я сделал немного больше исследований, пока не узнал сам.
Добавьте эту строку в свой EditText.
android:inputType="textFilter"
Вот совет. Используйте эту строку, если хотите использовать клавишу "enter".
android:inputType="textFilter|textMultiLine"
Ответ 2
android:inputType="textNoSuggestions"
также вам лучше читать this
Ответ 3
android:inputType="textVisiblePassword"
работает как шарм
Ответ 4
-
Programatically
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
-
XML
android:inputType="textNoSuggestions|textVisiblePassword"
Ответ 5
Самый надежный подход, который я нашел, чтобы избавиться от автозаполнения, заключается в использовании
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
в элементе управления EditText. Как Чарли сообщил в другом ответе на этой странице,
android:inputType="textVisiblePassword"
- это XML-версия этого флага.
Вы можете комбинировать этот флаг с
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
Я использовал InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS без InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, который работал для большинства телефонов, но затем я наткнулся на телефон Samsung, для которого я все еще получал автозаполнение.
Android программно отключает автозаполнение/автозагрузку для EditText в эмуляторе
который предложил использовать InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
Я пробовал это (вместе с InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS), и он сработал. Вы можете понять, почему даже телефон, который может не принять намек на то, что вы не хотите, чтобы автозаполнение потребовало, чтобы он был отключен для поля пароля. Короче, задерживая дыхание, это может быть лучший способ получить то, что мы хотим от таких телефонов.
На некоторых моих устройствах шрифт был слегка изменен этим флагом - наиболее заметно, чтобы отличить нуль (0) от Oh (O) более четко, что, очевидно, было бы важно для отображения пароля. Но, по крайней мере, это сработало, и новый шрифт не был непривлекательным.
Несмотря на то, что сообщение, на котором я нашел это предложение, было старым, телефон, который я тестировал, был очень недавним - Android Android Galaxy Note II (SPH-L900) Android 4.1.2 от Sprint. Выбранная клавиатура была "Samsung Keyboard", и, по-видимому, это было по умолчанию для этого телефона, когда клиент получил его от Sprint. Таким образом, эта проблема, по-видимому, сохраняется на протяжении многих лет по крайней мере для некоторых из важных телефонов Samsung.
Для тех из вас, у кого, как и я, нет тестового устройства Samsung, это может быть важной информацией.
Ответ 6
Для версии Android 8.0 или выше этот код не работает, а для текстового просмотра автозаполнения также этот код не работает, поэтому я предлагаю вам использовать приведенный ниже код для Отключить автоматическое предложение в версии 8.0 или выше для Android, используйте это свойство edittext android: importantForAutofill = "нет"
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:focusable="false"
android:imeOptions="actionDone"
android:maxLength="80"
android:maxLines="1"
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorBlack"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp"
app:bFontsEdt="light" />
и для текстового представления автозаполнения, подобного этому, используйте это поле, чтобы отключить автоматическое предложение android: ImportantForAutofill = "no":
<AutoCompleteTextView
android:id="@+id/autocompleteEditTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_3sdp"
android:layout_marginTop="@dimen/_5sdp"
android:background="@null"
android:imeOptions="actionDone"
android:singleLine="true"
android:text=""
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorGrayDark"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp" />
Ответ 7
Поскольку это все еще проблема, я собираюсь опубликовать этот ответ. android: inputType = "textVisiblePassword" работает, но это нежелательно, во-первых, потому что это искажение ввода и второе, потому что оно отключает Gesture Typing!
Вместо этого мне пришлось использовать BOTH флаги textNoSuggestions и textFilter. Либо один не работал.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
TextCapSentences был по другим причинам. Но этот тип ввода сохранил ввод текста и отключил панель инструментов предложения.
Ответ 8
Я получал эту вещь на телефонах samsung, работающих на 4.4.4. Это решило мою проблему
android:inputType="text|textVisiblePassword|textNoSuggestions"
Ответ 9
ОК, проблема была - в Eclipse вы не получите подсказку для флага с именем: textNoSuggestion
И вы не можете установить его в main.xml (где вы разрабатываете пользовательский интерфейс), потому что этот атрибут для inputType не распознается. Таким образом, вы можете установить его в коде, используя int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
И спасибо jasta00 за помощь в определении ответа на этот вопрос.
Ответ 10
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Это поможет вам.
Ответ 11
android:inputType="text|textNoSuggestions"
Ответ 12
Вы можете просто использовать метод EditText setThreshold()
. Установите пороговое значение, чтобы сказать 100, когда вы не хотите показывать прогнозы. Если вы хотите повторно активировать показ прогнозов, установите его в малый int, например 1 или 2, в зависимости от ваших потребностей.
Ответ 13
// 100% correct & tested
txtKey = (EditText) view.findViewById(R.id.txtKey);
txtKey.setPrivateImeOptions("nm");
txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
}