Выключить автозаполнение для EditText? - PullRequest
109 голосов
/ 24 декабря 2009

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

Ответы [ 12 ]

109 голосов
/ 02 января 2010

У меня был тот же вопрос, но я все еще хотел установить эту опцию в своем XML-файле, поэтому я провел немного больше исследований, пока сам не выяснил.

Добавьте эту строку в ваш EditText.

android:inputType="textFilter" 

Вот совет. Используйте эту строку, если вы хотите использовать клавишу «enter».

android:inputType="textFilter|textMultiLine"
107 голосов
/ 16 апреля 2011
android:inputType="textNoSuggestions"  

также вам лучше прочитать это

57 голосов
/ 29 марта 2013
android:inputType="textVisiblePassword" 

работает как шарм

36 голосов
/ 24 октября 2015
  1. Programatically

    edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    
  2. XML

    android:inputType="textNoSuggestions|textVisiblePassword"
    
20 голосов
/ 08 июня 2013

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

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, это может быть важной информацией.

7 голосов
/ 17 августа 2015

Поскольку это все еще проблема, я собираюсь опубликовать этот ответ. android: inputType = "textVisiblePassword" работает, но это нежелательно, во-первых, потому что это неверное представление ввода, а во-вторых, потому что это запрещает ввод жестов!

Вместо этого мне пришлось использовать ОБА флаги textNoSuggestions и textFilter. Либо один не работал.

android:inputType="textCapSentences|textFilter|textNoSuggestions"

textCapSentences было по другим причинам. Но этот inputType продолжал печатать пальцем и отключил панель подсказок.

5 голосов
/ 20 июля 2016

Я получал эту вещь на телефонах Samsung под управлением 4.4.4. Это решило мою проблему

android:inputType="text|textVisiblePassword|textNoSuggestions"
3 голосов
/ 26 декабря 2009

ОК, проблема в том, что в Eclipse вы не получаете подсказки для флага с именем: textNoSuggestion

И вы не можете установить его в main.xml (где вы разрабатываете пользовательский интерфейс), потому что этот атрибут для inputType не распознается. Таким образом, вы можете установить его в коде, используя int const:

EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);

И спасибо jasta00 за помощь в расчете ответа на этот вопрос.

1 голос
/ 04 марта 2015
android:inputType="text|textNoSuggestions"
1 голос
/ 14 мая 2012
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

Это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...