有没有办法以编程方式关闭在EditText中输入时弹出的autosuggest列表?
答案 0 :(得分:109)
我有同样的问题,但我仍然想在我的XML文件中设置此选项,所以我做了一些研究,直到我自己发现它。
将此行添加到EditText中。
android:inputType="textFilter"
这是一个提示。如果您希望能够使用“回车”键,请使用此行。
android:inputType="textFilter|textMultiLine"
答案 1 :(得分:105)
android:inputType="textNoSuggestions"
你最好还是阅读this
答案 2 :(得分:56)
android:inputType="textVisiblePassword"
就像一个魅力
答案 3 :(得分:36)
通过编程
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
XML
android:inputType="textNoSuggestions|textVisiblePassword"
答案 4 :(得分:18)
我发现摆脱自动完成的最可靠方法是使用
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
在您的EditText控件上。正如查理在本页的不同答案中所述,
android:inputType="textVisiblePassword"
是此标志的XML版本。
您可以将此标记与
组合使用InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
我一直在使用没有InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD的InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS,它适用于大多数手机,但后来我遇到了一台我仍然可以自动完成的三星手机。
Android programmatically disable autocomplete/autosuggest for EditText in emulator
建议使用InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD。
我尝试了这个(以及InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS)并且它有效。您可以看到为什么即使是可能不会提示您不希望自动完成提示的手机也 允许其为密码字段禁用。如果没有屏住呼吸,这可能是从这些手机中得到我们想要的最佳方式。
在我的一些设备上,这个标志略微改变了字体 - 最明显的是更清楚地区分零(0)和Oh(O),这显然对显示密码很重要。但至少它起作用了,新字体并没有吸引力。
尽管我发现这个建议的帖子已经过时了,我测试的手机是最近的 - 三星Galaxy Note II(SPH-L900)从Sprint购买Android 4.1.2。选择的键盘是“三星键盘”,显然当客户从Sprint收到时,这是这款手机的默认设置。所以这个问题显然多年来一直存在于至少一些重要的三星手机系列中。
对于像我这样没有三星测试设备的人来说,这可能是重要的信息。
答案 5 :(得分:7)
由于这仍然是一个问题,我将发布这个答案。 android:inputType =“textVisiblePassword”有效,但这是不可取的,首先是因为它是对输入的错误表示,其次是因为它禁用了手势输入!
相反,我必须使用BOTH标志textNoSuggestions和textFilter。任何一个人都没有工作。
android:inputType="textCapSentences|textFilter|textNoSuggestions"
textCapSentences是出于其他原因。但是这个inputType保持了滑动键入并禁用了建议工具栏。
答案 6 :(得分:5)
我在运行4.4.4的三星手机上得到了这个东西。这解决了我的问题
android:inputType="text|textVisiblePassword|textNoSuggestions"
答案 7 :(得分:4)
这对我有用
android:importantForAutofill="no"
android:inputType="none|textNoSuggestions"
答案 8 :(得分:3)
好的,问题是 - 在Eclipse中你没有得到名为的标志的建议:textNoSuggestion
并且您无法在main.xml(设计UI的位置)中设置它,因为无法识别inputType的属性。所以你可以使用int const:
在代码中设置它EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
感谢jasta00帮我解决这个问题。
答案 9 :(得分:2)
您可以使用以下方法解决此问题:
android:importantForAutofill="no"
Android O具有支持字段自动填充的功能,仅在xml中使用此功能,它将禁用自动填充提示
答案 10 :(得分:1)
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
这会对你有帮助。
答案 11 :(得分:1)
android:inputType="text|textNoSuggestions"
答案 12 :(得分:0)
您可以简单地使用EditText的setThreshold()
方法。当您不想显示预测时,将阈值设置为100。如果要重新激活显示预测,请根据需要将其设置为小的int,如1或2。
答案 13 :(得分:0)
对于android 8.0或更高版本,此代码不起作用 对于自动完成的textview,此代码也不起作用,因此我建议您使用以下代码在8.0或更高版本中禁用自动建议android vesrion使用edittext的此属性 android:importantForAutofill =“否” < / em>
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:focusable="false"
android:imeOptions="actionDone"
android:maxLength="80"
android:maxLines="1"
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorBlack"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp"
app:bFontsEdt="light" />
,对于这样的“自动完成”文本视图,请使用此字段禁用自动建议 android:importantForAutofill =“ no” :
<AutoCompleteTextView
android:id="@+id/autocompleteEditTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_3sdp"
android:layout_marginTop="@dimen/_5sdp"
android:background="@null"
android:imeOptions="actionDone"
android:singleLine="true"
android:text=""
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorGrayDark"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp" />
答案 14 :(得分:0)
...
Accept: application/json
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Sec-Fetch-Mode: cors
Content-Type: application/json; charset=UTF-8
...