InputMethodManager
https://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html
在中国InputMethod。当我输入"西安市“时,我期望日志如下所示。
afterTextChanged 西
afterTextChanged 西安
afterTextChanged 西安市但实际的日志如下。
afterTextChanged x
afterTextChanged xi
afterTextChanged 西
afterTextChanged a
afterTextChanged an
afterTextChanged 安
....如果我使用“快速拨号”方式输入中文单词。日志变得更糟!
E: afterTextChanged() t
E: afterTextChanged() t'x
E: afterTextChanged() t'z'z
E: afterTextChanged() t'y'y's
E: afterTextChanged() 挺有意思代码如下。
@Override
public void afterTextChanged(Editable s) {
Log.i(TAG, "afterTextChanged "+s.toString());
}

发布于 2017-07-17 20:23:03
您是否使用的是模拟Android设备,而不是真正的Android手机?我用我的手机运行同样的代码。但是日志并没有像您预期或描述的那样出来。
我的手机是Nexus 6p,Android 7.1.1,默认输入法。

它没有把单词'西安市‘放到EditText中,直到西安市被选中完成。因此,在我的例子中,当选择西安市完成时,afterTextChanged只发生一次。
https://stackoverflow.com/questions/45143035
复制相似问题