Android以编程方式为模拟器中的EditText禁用自动完成/自动提示

gyo*_*oda 45 android emulation autosuggest android-edittext

针对Android 2.2

我已经阅读了以下问题的答案:

关闭EditText的autosuggest?

Android:EditText中的Multiline&No autosuggest

我在建议上尝试了以下变化:

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER);

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
Run Code Online (Sandbox Code Playgroud)

所有这些都适用于我一直在测试的大多数设备(Droid X,Droid 2,Thunderbolt,Incredible),但不适用于仿真器和至少1台设备(Samsung GT i5500).

有没有其他方法可以以仿真器和某些设备识别并尊重的方式以编程方式禁用EditText的自动完成/自动提示?

bob*_*bob 47

对于Vodafone 845(2.1),华为8800(2.2)设备,textVisiblePassword似乎可以防止单词预测.

vendorId.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Run Code Online (Sandbox Code Playgroud)

要么

安卓的inputType = "textVisiblePassword"

  • 请注意,在非英语键盘上,这可能会禁用某些功能,例如切换语言. (5认同)

Phi*_*hil 24

在布局XML中,将以下属性添加到EditText:

android:inputType="text|textNoSuggestions"
Run Code Online (Sandbox Code Playgroud)

如果这个以及上述方法都不起作用,那么这几乎肯定是仿真器和其他设备的问题,您应该直接联系制造商.

另请参阅:android:inputType(注意它EditText是其子类TextView,这也是此属性也适用的原因EditTexts).


the*_*uro 15

我已经尝试了以上所有,上面没有一个真正帮助过我.我搜索了可用的InputTypes,我想出了一个解决方案,恰好是TYPE_TEXT_FLAG_AUTO_COMPLETE:

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

从它的描述:

这通常意味着输入方法不应该显示候选者本身,但可以期望编辑器从InputMethodSession.displayCompletions()提供其自己的完成/候选.

我没有指定任何完成设置,因此我没有得到任何自动建议.

PS.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD在上面的推荐中提到的标志也是这个技巧,但它也禁止在键盘中切换语言.


itz*_*har 6

就个人而言,这段代码帮助我:

autoCompleteTextView.setAdapter(null);
autoCompleteTextView.setText(address);
autoCompleteTextView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

我想在设置文本时禁用建议,所以我删除了适配器,在我打电话后setText,我将其返回.

所以,如果你想禁用建议,只需使用:

autoCompleteTextView.setAdapter(null);
Run Code Online (Sandbox Code Playgroud)