Ответы:
У меня был тот же вопрос, но я все еще хотел установить эту опцию в своем XML-файле, поэтому я провел еще немного исследований, пока не нашел его сам.
Добавьте эту строку в свой EditText.
android:inputType="textFilter"
Вот совет. Используйте эту строку, если хотите иметь возможность использовать клавишу «ввод».
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
предложенный текст, но он по-прежнему отображает строку предложений (со значком микрофона).
android:inputType="textNoSuggestions"
также вам лучше прочитать это
android:inputType="textVisiblePassword"
работает как шарм
.
точку char, добавленную в конце слова, если после этого слова вводятся два пробела. Я использовал его для панели действий searchView((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Способы сделать это:
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
android:inputType="textNoSuggestions"
Если у вас уже установлены некоторые флаги, то:
inputType = if (disableSuggestions) {
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
android:inputType="textNoSuggestions|textPassword"
Самый надежный подход, который я нашел для избавления от автозаполнения, - это использовать
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), что, очевидно, было бы важно для отображения пароля. Но, по крайней мере, это сработало, и новый шрифт не был непривлекательным.
Несмотря на то, что сообщение, в котором я нашел это предложение, было старым, телефон, на котором я тестировал, был совсем недавним - это Samsung Galaxy Note II (SPH-L900) с Android 4.1.2 от Sprint. Выбранной клавиатурой была «Samsung Keyboard», и, очевидно, это была клавиатура по умолчанию для этого телефона, когда покупатель получил ее от Sprint. Таким образом, эта проблема, по-видимому, сохранялась на протяжении многих лет по крайней мере для некоторых важных телефонов Samsung.
Для тех из вас, у кого, как и у меня, нет тестового устройства Samsung, это может быть важная информация.
Для версии Android 8.0 или выше этот код не работает, а для текстового представления автозаполнения этот код также не работает, поэтому я предлагаю вам использовать приведенный ниже код для Отключить автоматические предложения в версии 8.0 или выше Android vesrion, используйте это свойство 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" />
и для такого текстового представления AutoComplete используйте это поле, чтобы отключить автоматическое предложение 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" />
Вы можете решить эту проблему, используя это:
android:importantForAutofill="no"
Android O имеет функцию поддержки автоматического заполнения полей, просто используйте это только в своем xml, это отключит подсказки автозаполнения
Поскольку это все еще проблема, я отправлю этот ответ. android: inputType = "textVisiblePassword" работает, но это нежелательно, во-первых, потому что это искажение ввода, а во-вторых, потому что он отключает ввод с помощью жестов!
Вместо этого мне пришлось использовать ОБА флага textNoSuggestions и textFilter. Либо один по отдельности не работал.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
TextCapSentences был по другим причинам. Но этот inputType сохранил смахивающий ввод и отключил панель инструментов предложений.
Получал эту штуку на телефонах самсунг под управлением 4.4.4. Это решило мою проблему
android:inputType="text|textVisiblePassword|textNoSuggestions"
Хорошо, проблема была в том, что в Eclipse вы не получаете предложения для флага с именем: textNoSuggestion
И вы не можете установить его в main.xml (где вы разрабатываете пользовательский интерфейс), потому что этот атрибут для inputType не распознается. Таким образом, вы можете установить его в коде, используя int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
И спасибо jasta00 за то, что помог мне найти ответ на этот вопрос.
android:inputType="text|textNoSuggestions"
// 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);
}
Вы можете просто использовать метод EditText setThreshold()
. Установите порог, скажем, 100, если вы не хотите показывать прогнозы. Если вы хотите повторно активировать отображение прогнозов, установите для него небольшое значение типа int, например 1 или 2, в зависимости от ваших потребностей.