无法禁用预测文本

时间:2012-05-08 08:40:03

标签: android android-edittext

我正在尝试停用给定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"/>

4 个答案:

答案 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库在提示文本上显示正确字体的唯一解决方案是:

  • 使用以下命令在xml中设置密码android:inputType="textNoSuggestions|textVisiblePassword" EditText
  • 通过以下方式以编程方式配置passwordET.transformationMethod = PasswordTransformationMethod()TextInputLayout

这将:

  1. 在提示上显示正确的字体
  2. 在文本上显示正确的字体
  3. 如果您有eg pe_emp_id emp_id 01 25 01 36 02 25 ,请显示正确的字体
  4. 不会在键盘上显示建议或预测。

答案 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)});