我有一个用于搜索电话号码的editText。它会自动在两种模式之间切换:
因此,要做到这一点,必须在用户输入文本时动态更改editText输入类型,遵循以下规则:
INPUT_NO_SUGGEST
INPUT_NO_SUGGEST
INPUT_TEXT
输入带有建议的文字时会出现问题:
在第一种情况下,我们更改单词'Can' - >'Cam',它的工作原理错误 在第二种情况下,我们补充单词'Can' - >'Can not'并且它可以正常运行
textWatcher中的代码:
private static final int INPUT_TEXT = InputType.TYPE_CLASS_TEXT;
private static final int INPUT_NO_SUGGEST = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
...
public void afterTextChanged(Editable s) {
boolean isPhone = isPhoneNumber(s);
int inputType;
if (s.length() == 0) {
inputType = INPUT_NO_SUGGEST;
} else {
if (isPhone) {
inputType = INPUT_NO_SUGGEST;
} else {
inputType = INPUT_TEXT;
}
}
editText.setInputType(inputType);
}
有任何想法如何解决?