Відповіді:
У мене було те саме питання, але я все-таки хотів встановити цю опцію у своєму XML-файлі, тому я трохи більше досліджував, поки сам не з’ясував це.
Додайте цей рядок у свій EditText.
android:inputType="textFilter"
Ось порада. Використовуйте цей рядок, якщо ви хочете мати можливість використовувати клавішу "введення".
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
запропонований текст, але він все ще відображає рядок пропозицій (зі значком мікрофона).
android:inputType="textNoSuggestions"
також вам краще прочитати це
android:inputType="textVisiblePassword"
працює як шарм
.
знаку періоду, доданого в кінці слова, якщо після цього слова набрано два пробіли. Я використовував його для пошуку в панелі екшнів ((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", і, мабуть, це було типовим для цього телефону, коли клієнт отримав його від Sprint. Тож ця проблема, мабуть, зберігається протягом багатьох років хоча б для деяких важливих лінійок телефонів Samsung.
Для тих із вас, хто, як і я, не має тестового пристрою Samsung, це може бути важливою інформацією.
Для андроїд версії 8.0 або вище цей код не працює, а для автозаповнення перегляду тексту також цей код не працює, тому я запропоную вам використовувати код нижче для відключення пропозицій щодо авто в 8.0 або вище для android vesrion використовувати цю властивість Android для редагування тексту : bitnoForAutofill = "ні"
<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 = "ні" :
<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" працює, але це небажано, по-перше, тому що це неправильне представлення вводу, а друге, тому що він вимикає введення жестами!
Натомість мені довелося використовувати BOTH flags textNoSuggesitions and textFilter. Або один не працював.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
TextCapSentences був з інших причин. Але цей вхідний тип утримував натискання пальцем і відключав панель інструментів пропозицій.
Я отримував цю річ на телефонах Samsung під управлінням 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);
}
Ви можете просто скористатися setThreshold()
методом EditText . Встановіть поріг, щоб сказати 100, коли ви не хочете показувати прогнози. Якщо ви хочете повторно активувати показ прогнозів, встановіть його назад на невелику точку типу 1 або 2 залежно від ваших потреб.