我通过扩展EditText创建了一个自定义android.widget.EditText。
当EditText有焦点时,我希望自动正确的跨度仅可见。因此,我在构造函数中调用setInputType(INPUT_NO_FOCUS);,并:
@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);
}
}通过以下方式:
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后不会出现。成功地更改了输入类型。
如何触发自动更正/添加自动完成?
//编辑:
我想存档的用例:
MyEditText extends EditText视图,而不是聚焦。文本上没有拼写检查(->文本下没有红色跨度/行)发布于 2013-03-15 16:07:35
恐怕没有什么好办法。问题在于,当输入类型发生变化时,Android框架并没有真正的机制来告诉键盘。键盘通常在字段打开时检查类型。在那之后,如果类型改变了,它将不会知道,除非它轮询它,我认为没有任何现有的键盘这样做。
https://stackoverflow.com/questions/15258100
复制相似问题