如何禁用在软键盘上显示“建议”

时间:2010-11-26 00:50:46

标签: android

当有人使用我的应用程序时(仅在某些Activities上),我想关闭在软/虚拟键盘上显示“推荐的单词”。对于默认的Android键盘,可以在“设置”下找到(在“词建议设置”下)。

有没有办法只在你的应用程序中禁用它,而不需要用户手动去做呢?我基本上希望用户输入单词而不提供任何提示。

谢谢!

9 个答案:

答案 0 :(得分:62)

在为2.0+开发时,假设的方法是设置android:inputType="textNoSuggestions"ref)。 不幸的是,HTC Desire 2.2(以及可能还有其他HTC Sense设备)上仍然显示了建议 使用android:inputType="textVisiblePassword"无助于HTC的软件键盘不允许您切换语言 所以我坚持android:inputType="textFilter"来禁用建议。

答案 1 :(得分:23)

您可以通过在xml中添加以下行来禁用软键盘上的建议 -

android:inputType="textNoSuggestions"

然而根据this文章,IME(键盘)可能支持也可能不支持。

如果出现此问题,以下方法肯定会起作用 -

android:inputType="textNoSuggestions|textVisiblePassword"

答案 2 :(得分:13)

这适用于我的股票键盘,即使在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);

答案 3 :(得分:9)

在我的6P跑Nougat上,没有任何效果。当它为空时,建议栏会保持不变,因为右侧有麦克风图标。 为了摆脱这种情况,我在其中一条评论中使用了fingerup的建议并且它有效! 所以我决定写一个实际的答案,所以人们不要错过它。 回顾一下我用过的东西:

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

inputType="textNoSuggestions|textFilter|textVisiblePassword"会阻止建议,而privateImeOptions="nm"(代表“无麦克风”)会阻止条形图显示,因为麦克风按钮位于其中后仍会显示。 所以有必要使用这两个属性,因为如果你所做的只是指定没有麦克风,那么该栏仍然会显示建议 再次提到nm技巧的指责。 ;)

答案 4 :(得分:6)

我知道有两种方法可以禁用自动完成功能。一种方法是通过在布局xml中设置android:inputType =“textVisiblePassword”来通过XML。

另一种方式是通过以下代码

EdtiText editTextBox = findViewById(R.id.myEditTextView);
editTextBox.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

答案 5 :(得分:3)

我在使用以下设备的三星设备上遇到了同样的问题:

android:inputType="textNoSuggestions|textFilter|textVisiblePassword"

仅在将inputType设置为passwword和visiblePassword才对我有用:

android:inputType="textPassword|textVisiblePassword"

答案 6 :(得分:1)

android:inputType="textPhonetic"隐藏了Android 1.6上的软键盘建议。

答案 7 :(得分:0)

如果您在活动中使用InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS,它将正常工作。 如果是DialogFragment,您应该将InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS放在。{1}} 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);
}

答案 8 :(得分:0)

希望这适合你,

editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_CAP_SENTENCES|InputType.TYPE_TEXT_FLAG_MULTI_LINE|InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);