Отключить автозапуск для EditText?


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

11 94

11 ответов:

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

добавьте эту строку в свой EditText.

android:inputType="textFilter" 

вот совет. Используйте эту строку, если вы хотите иметь возможность использовать клавишу "Enter".

android:inputType="textFilter|textMultiLine"
android:inputType="textNoSuggestions"  

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

android:inputType="textVisiblePassword" 

работает

  1. программно

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

    android:inputType="textNoSuggestions|textVisiblePassword"
    

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

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) и это сработало. Вы можете понять, почему даже телефон, который может не принять намек, что вы не хотите автозаполнения будет есть to разрешить его отключить для поля пароля. За исключением задержки дыхания, это может быть лучший способ получить то, что мы хотим от таких телефонов.

на некоторых моих устройствах шрифт был немного изменен этим флагом - наиболее заметно, чтобы более четко отличить ноль (0) от Oh (O), что, очевидно, было бы важно для отображения пароля. Но, по крайней мере, это сработало, и новый шрифт не был непривлекательным.

хотя сообщение, на котором я нашел это предложение было старый, телефон, который я тестировал, был очень недавним - Samsung Galaxy Note II (SPH-L900) stock Android 4.1.2 от Sprint. Выбранная клавиатура была "Samsung Keyboard", и, по-видимому, это было по умолчанию для этого телефона, когда клиент получил его от Sprint. Таким образом, эта проблема, по-видимому, сохраняется на протяжении многих лет, по крайней мере, для некоторых важных телефонов Samsung.

для тех из вас, кто, как и я, не имеют тестового устройства Samsung, это может быть важно информация.

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

вместо этого мне пришлось использовать оба флага textNoSuggestions и textFilter. Ни один из них в одиночку не работал.

android:inputType="textCapSentences|textFilter|textNoSuggestions"

textCapSentences был по другим причинам. Но этой помощью свойства inputType сохранил салфетки набора и инвалидов предложение панель инструментов.

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

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

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

и спасибо jasta00 для того, чтобы помочь мне понять ответ на этот вопрос.

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

android:inputType="text|textVisiblePassword|textNoSuggestions"
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

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

вы можете просто использовать EditText в setThreshold() метод. Установите порог, скажем, 100, когда вы не хотите показывать прогнозы. Если вы хотите повторно активировать отображение прогнозов, установите его обратно на небольшой int, например 1 или 2, в зависимости от ваших потребностей.

android:inputType="text|textNoSuggestions"