首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EditText:切换InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS

EditText:切换InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
EN

Stack Overflow用户
提问于 2013-03-06 21:08:33
回答 1查看 1.1K关注 0票数 4

我通过扩展EditText创建了一个自定义android.widget.EditText

EditText有焦点时,我希望自动正确的跨度仅可见。因此,我在构造函数中调用setInputType(INPUT_NO_FOCUS);,并:

代码语言:javascript
复制
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
    super.onFocusChanged(focused, direction, previouslyFocusedRect);
    if (focused) {
        setInputType(INPUT_FOCUS);
    } else {
        setInputType(INPUT_NO_FOCUS);
    }
}

通过以下方式:

代码语言:javascript
复制
private final int INPUT_NO_FOCUS = TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE
        | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
private final int INPUT_FOCUS = TYPE_CLASS_TEXT | TYPE_TEXT_FLAG_MULTI_LINE
        | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | InputType.TYPE_TEXT_FLAG_AUTO_COMPLET;

==>确实没有自动更正和自动完成,但是它在单击EditText后不会出现。成功地更改了输入类型。

如何触发自动更正/添加自动完成?

//编辑:

我想存档的用例:

  1. 显示MyEditText extends EditText视图,而不是聚焦。文本上没有拼写检查(->文本下没有红色跨度/行)
  2. 用户单击“编辑”字段。->拼写检查被触发->红线出现(用户可以点击拼写错误的单词并让操作系统纠正它们)
  3. 用户点击另一个视图元素->红线/跨消失。
EN

回答 1

Stack Overflow用户

发布于 2013-03-15 16:07:35

恐怕没有什么好办法。问题在于,当输入类型发生变化时,Android框架并没有真正的机制来告诉键盘。键盘通常在字段打开时检查类型。在那之后,如果类型改变了,它将不会知道,除非它轮询它,我认为没有任何现有的键盘这样做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15258100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档