我正在尝试停用给定EditText
的预测文字,正如here所解释的那样,但我仍然可以通过预测获得自动填充...
我有一台启用了XT9的三星Galaxy S.
有人可以帮忙吗?
<EditText
android:id="@+id/search_field"
android:layout_width="300dp"
android:layout_height="27dp"
android:background="@drawable/bg_searchfield"
android:hint="@string/search_hint"
android:imeOptions="actionSearch"
android:inputType="text|textNoSuggestions|textFilter"/>
答案 0 :(得分:22)
来自this的评论SO问题表明xml属性对某些模型不起作用,但java方法在这些情况下确实有效。所以试试这个:
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
修改强>
正如下面的评论所示,这是一个有效的xml替代方案:
android:inputType="textNoSuggestions|textVisiblePassword"
答案 1 :(得分:7)
android:inputType="textNoSuggestions|textVisiblePassword"
此解决方案有效,但您必须小心。如果设置了标志 textVisiblePassword ,则无法在HTC设备上切换键盘语言(原因可能是在Sense键盘中)。
所以我必须从代码中设置InputType并写下这样的东西:
public static int getInputTypeForNoSuggestsInput() {
if (android.os.Build.MANUFACTURER.equalsIgnoreCase("Samsung")) {
return InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
| InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
} else {
return InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
}
答案 2 :(得分:0)
使用Calligraphy库在提示和文本上显示正确字体的唯一解决方案是:
android:inputType="textNoSuggestions|textVisiblePassword"
EditText
passwordET.transformationMethod = PasswordTransformationMethod()
:
TextInputLayout
这将:
eg pe_emp_id emp_id
01 25
01 36
02 25
,请显示正确的字体答案 3 :(得分:0)
上面给出的大多数解决方案对我来说都行不通。所以我做了一个解决方法。
使用以下过滤器方法创建一个InputFilter:
for (char ch:BLOCKED_CHARACTER_SET.toCharArray()){
if (source != null && source.toString().contains(ch+"")) {
return "";
}
}
此处BLOCKED_CHARACTER_SET是包含我们要阻止的字符的字符串。
然后设置编辑文本
editText.setFilters(new InputFilter[]{filterUsername, new InputFilter.LengthFilter(LENGTH)});