当有人使用我的应用程序时(仅在某些Activities
上),我想关闭在软/虚拟键盘上显示“推荐的单词”。对于默认的Android键盘,可以在“设置”下找到(在“词建议设置”下)。
有没有办法只在你的应用程序中禁用它,而不需要用户手动去做呢?我基本上希望用户输入单词而不提供任何提示。
谢谢!
答案 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);