Как я могу отключить предложения в EditText?

Как отключить предложения в EditText на Android?


person James    schedule 24.09.2010    source источник


Ответы (8)


Это уже описано в ссылке, опубликованной Йони Самланом. Вы должны правильно читать документацию;)

Существует метод setInputType. Все, что вам нужно, это вызвать его с помощью

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
person Tseng    schedule 25.09.2010
comment
Не поддерживается в HTC Desire. - person Kurru; 04.03.2011
comment
Странная штука, на моем Desire и Wildfire при установке android:inputType=textNoSuggestions в xml не работает. Установка его в коде работает как шарм mEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); Никаких проблем с моим Droid с двумя методами. - person ol_v_er; 15.03.2011
comment
@ol_v_er: ни одно из решений не работает для меня в Galaxy Note с клавиатурой Hacker. - person Luis A. Florit; 09.11.2012
comment
@LuisA.Florit флаг типа ввода — это флаг для клавиатуры, правильность действий с ним зависит от реализации клавиатуры. - person Dandre Allison; 05.05.2013
comment
Важно НЕ or использовать его с TYPE_CLASS_TEXT, иначе он будет переопределять флаг «нет предложений». - person scorpiodawg; 11.02.2015

android:inputType="textNoSuggestions"

в соответствии с этим, может поддерживаться или не поддерживаться IME (клавиатура).

Однако это работает чаще

android:inputType="textNoSuggestions|textVisiblePassword"
person Kurru    schedule 03.03.2011
comment
android:inputType="textNoSuggestions|textVisiblePassword" сделал свое дело для моего Wildfire и Desire HD. Ткс! - person JOG; 31.10.2011
comment
@Kurru: это работает, но я получаю ужасный сбой NullPointerException при попытке выполнить 'event.getKeyCode()'. - person Luis A. Florit; 09.11.2012
comment
Обратите внимание, что это вызовет проблемы с клавиатурами Swype. Пространство не будет автоматически добавляться после того, как слово было перевернуто. Кроме того, функция преобразования голоса в текст не будет работать, поскольку эта функция отключена, поскольку клавиатура Swype воспринимает это как поле пароля. - person Donn Felker; 11.07.2013
comment
Кажется, что textVisiblePassword также вызывает проблемы с японскими клавиатурами. Есть идеи по этому поводу? - person Georg; 17.08.2015
comment
Это также нарушает функциональность ограничения персонажей. - person desgraci; 09.08.2019
comment
И он также нарушает ввод стилуса на планшетах, потому что он явно указывает программной клавиатуре, что содержимое этого поля не должно добавляться ни в какой словарь, синхронизироваться по сети, добавляться в статистику использования или что-то в этом роде источник - person Ivan Mir; 23.10.2020

Кажется, это работает лучше;

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

т. е. видимый пароль и типы ввода без предложений объединяются по ИЛИ

Чтобы убедиться, что вы также можете добавить этот атрибут в текст редактирования

android:inputType="textNoSuggestions|textVisiblePassword"
person Mark    schedule 04.09.2012

android:inputType="textNoSuggestions". См. документацию по атрибутам xml и эту документацию для разработчиков Android запись в блоге.

person Yoni Samlan    schedule 24.09.2010
comment
Спасибо за ваш ответ. Но я динамически редактирую текст редактирования, я хочу сделать то же самое в коде Java. Пожалуйста, помогите мне. - person James; 25.09.2010
comment
Вышеупомянутый Ценг прав: большинство атрибутов Android, устанавливаемых с помощью xml, имеют соответствующие методы set[attributeName], в данном случае setInputType. - person Yoni Samlan; 27.09.2010

Если вы используете InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS в действии, он будет работать нормально. В случае DialogFragment вы должны поместить InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS в обработчик onActivityCreated(), как показано ниже:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    EditText editTextUsername =  (EditText)dialogView.findViewById(R.id.txtUsername);
    editTextUsername.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
}
person Shalu T D    schedule 25.10.2015

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

android:inputType="textCapSentences|textNoSuggestions|textEmailAddress"

Это не 100%, но работает :)

person Elad Gelman    schedule 14.02.2013

Если Editext/TextInputEditText содержит более 1 строки, добавьте textMultiLine.

 android:minLines="10"
 android:inputType="textNoSuggestions|textMultiLine|textVisiblePassword"
person Aklesh Singh    schedule 30.08.2018

Вот что сработало для меня:

android:importantForAutofill="no"
person francis    schedule 27.02.2021