【问题标题】:How to disable displaying "suggestions" on the Soft Keyboard如何禁用在软键盘上显示“建议”
【发布时间】:2010-11-26 00:50:45
【问题描述】:

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

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

谢谢!

【问题讨论】:

标签: android


【解决方案1】:

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

【讨论】:

  • 我还没有尝试过使用“android:inputType="textFilter”,但我也可以通过 HTC Hense 上的多行 EditText 控件确认这一点(使用 HTC Hero 和 2.1 ROM)“android: inputType="textVisiblePassword" 不起作用。当 EditText 不是多行时,它确实有效。谢谢!
  • 对于 HTC Desire x,“android:inputType="textFilter" 有效。谢谢
  • "textVisiblePassword" 禁用表情符号,我不能使用它。我已经删除了 android:inputType="textNoSuggestions" 和 android:privateImeOptions="nm" (nm : No Micro) 的建议
  • 对我不起作用。有效的是@AmeyaPandilwar 的回答:android:inputType="textNoSuggestions|textVisiblePassword"
  • 这么简单的功能怎么实现的这么傻。
【解决方案2】:

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

android:inputType="textNoSuggestions"

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

如果出现这个问题,下面的方法肯定有效-

android:inputType="textNoSuggestions|textVisiblePassword"

【讨论】:

  • 也适用于三星 Galaxy Tab 4 (Android 4.4.2)。
【解决方案3】:

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

【讨论】:

  • 我想添加我遇到的皱纹。将这些标志与现有 inputType 进行或运算可能不起作用。在我运行 4.04 的三星 Galaxy SIII 上,现有的 inputType 在膨胀时是 EditorInfo.TYPE_CLASS_TEXT。 OR-ing 附加标志并没有阻止这些建议。但是,如果我将 inputType 设置为 EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS,则成功阻止了建议:et.setInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS);希望这会有所帮助。
【解决方案4】:

在我运行 Nougat 的 6P 上,没有任何效果。虽然它是空的,但建议栏保持不变,因为它的右侧有麦克风图标。 为了摆脱这种情况,我在其中一个 cmets 中使用了 fingerup 的建议,它奏效了! 所以我决定写一个实际的答案,这样人们就不会错过它。 回顾一下我用过的东西:

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

inputType="textNoSuggestions|textFilter|textVisiblePassword" 阻止建议,privateImeOptions="nm"(代表“无麦克风”)阻止显示栏,因为它仍然会因为麦克风按钮在其中。 因此有必要同时使用这两个属性,因为如果您所做的只是不指定麦克风,那么该栏仍会显示推荐。
再次感谢手指提到 nm 技巧。 ;)

【讨论】:

  • 对于删除行建议... tns
【解决方案5】:

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

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

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

【讨论】:

  • 您不能像这样禁用对密码字段的建议。最好使用 EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS
【解决方案6】:

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

android:inputType="textNoSuggestions|textFilter|textVisiblePassword"

只有在将 inputType 设置为 password 并且 visiblePassword 对我有用之后:

android:inputType="textPassword|textVisiblePassword"

【讨论】:

    【解决方案7】:

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

    【讨论】:

      【解决方案8】:

      希望这对你有用,

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

      【讨论】:

        【解决方案9】:

        如果您在活动中使用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);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-07-19
          • 1970-01-01
          • 2018-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-20
          相关资源
          最近更新 更多