Как отключить отображение «предложений» на Soft Keyboard - PullRequest
46 голосов
/ 26 ноября 2010

Я хочу отключить отображение «Предлагаемые слова» на программной / виртуальной клавиатуре, когда кто-то использует мое приложение (только на определенных Activities). Для клавиатуры Android по умолчанию ее можно найти в разделе «Настройки» (в разделе «Настройки Word Word»).

Есть ли способ отключить его только в вашем приложении, не требуя, чтобы пользователь вручную пошел и сделал это? Я хочу, чтобы пользователь набирал слова без подсказок.

Спасибо!

Ответы [ 9 ]

62 голосов
/ 20 декабря 2010

При разработке для 2.0+ предполагаемый способ - установить android:inputType="textNoSuggestions" ( ref ).К сожалению, предложения все еще отображаются в HTC Desire 2.2 (и, возможно, также на других устройствах HTC Sense).
Использование android:inputType="textVisiblePassword" не поможет, а программная клавиатура HTC не позволит вам переключать языки.* Поэтому я придерживаюсь android:inputType="textFilter", чтобы отключить предложения.

23 голосов
/ 25 сентября 2014

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

android:inputType="textNoSuggestions"

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

Если эта проблема возникает, приведенный ниже метод наверняка сработает -

android:inputType="textNoSuggestions|textVisiblePassword"
13 голосов
/ 18 февраля 2011

У меня это работает со стоковой клавиатурой, даже на HTC с 2.2

final EditText et = (EditText) findViewById(R.id.SearchText);
et.setInputType(et.getInputType()
    | EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS
    | EditorInfo.TYPE_TEXT_VARIATION_FILTER);
11 голосов
/ 12 октября 2016

На моем 6P под управлением Nougat ничего не работало.Пока она пуста, панель подсказок остается активной, поскольку справа от нее находится значок микрофона.Чтобы избавиться от этого, я использовал предложение fingerup в одном из комментариев, и оно сработало!Поэтому я решил написать реальный ответ, чтобы люди не пропустили его.Напомним, вот что я использовал:

    android:inputType="textNoSuggestions|textFilter|textVisiblePassword"
    android:privateImeOptions="nm"

inputType="textNoSuggestions|textFilter|textVisiblePassword" запрещает предложения, а privateImeOptions="nm" (расшифровывается как «без микрофона») предотвращает отображение панели, потому что она все еще будет работать, так как кнопка микрофонав этом.Поэтому необходимо использовать оба атрибута, потому что, если все, что вы делаете, это указываете отсутствие микрофона, то панель все равно отображается с рекомендациями.
Еще раз, чтобы вспомнить упоминание о приеме нм.;)

6 голосов
/ 26 ноября 2010

Есть два способа отключить автозаполнение. Одним из способов является XML, установив android: inputType = "textVisiblePassword" в макете xml.

Другой способ - через код, такой как следующий

EdtiText editTextBox = findViewById(R.id.myEditTextView);
editTextBox.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
3 голосов
/ 30 октября 2018

Я столкнулся с той же проблемой на устройствах Samsung, используя:

android:inputType="textNoSuggestions|textFilter|textVisiblePassword"

только после установки для inputType пароля и visiblePassword работал для меня:

android:inputType="textPassword|textVisiblePassword"
1 голос
/ 11 мая 2012

android:inputType="textPhonetic" скрывает подсказки программной клавиатуры на Android 1.6.

0 голосов
/ 10 февраля 2014

надеюсь, что это работает для вас,

editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_CAP_SENTENCES|InputType.TYPE_TEXT_FLAG_MULTI_LINE|InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
0 голосов
/ 10 февраля 2014

Если вы используете 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...