关闭 EditText 的自动建议?

新手上路,请多包涵

有没有办法以编程方式关闭您在 EditText 中键入时弹出的自动建议列表?

原文由 nikib3ro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 605
2 个回答

我有同样的问题,但我仍然想在我的 XML 文件中设置这个选项,所以我做了更多的研究,直到我自己发现它。

将此行添加到您的 EditText 中。

 android:inputType="textFilter"

这是一个提示。如果您希望能够使用“回车”键,请使用此行。

 android:inputType="textFilter|textMultiLine"

原文由 glr 发布,翻译遵循 CC BY-SA 2.5 许可协议

使用 TextWatcher 为自动建议找到一个好的解决方案。建议将显示给用户,但用户将无法接受它们。

 /*...*/

editText.addTextChangedListener(textWatcher);

/*...*/
}

private final TextWatcher textWatcher = new TextWatcher() {

    long timestamp = 0L;

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (!longClickable && count - before > 1 && timestamp < System.currentTimeMillis()) { // disable suggestions click
            String str = s.toString();
            str = str.substring(0, before);
            timestamp = System.currentTimeMillis() + 20;
            inputText.setText(str);
            inputText.setSelection(inputText.getText().length());
        }
    }

    @Override
    public void afterTextChanged(Editable s) {
    }
};

当您不需要长按复制/粘贴功能时,这也很有效

原文由 Dmitry Velychko 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题