Android 使用TextWatcher编辑文本和建议

Android 使用TextWatcher编辑文本和建议,android,android-edittext,textwatcher,Android,Android Edittext,Textwatcher,将一个应用程序从2.2移动到3.x,我的一个EditText,我正在使用TextWatcher进行验证,它的性能很差。简言之,当用户单击EditText时,整个单词进入“建议模式”(在此处加下划线),它实际上从TextWatcher的角度从EditText中删除,触发我对空EditText所做的文本验证检查。守则: mText = (EditText) findViewById(R.id.inpt_title); mText.addTextChangedListener(new TextWatc

将一个应用程序从2.2移动到3.x,我的一个EditText,我正在使用
TextWatcher
进行验证,它的性能很差。简言之,当用户单击
EditText
时,整个单词进入“建议模式”(在此处加下划线),它实际上从TextWatcher的角度从EditText中删除,触发我对空EditText所做的文本验证检查。守则:

mText = (EditText) findViewById(R.id.inpt_title);
mText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable editable) {
        final String title = editable.toString();
    Log.d(LOG_TAG, "addTextChangedListener(): title: " + title + ", length: " + title.length());
    if (title.length() == 0) {
    // empty title
    mText.setError(getString(R.string.error_note_title_empty));
    }
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    mText.setTextColor(getResources().getColor(R.color.black));
}

@Override
public void onTextChanged(CharSequence s, int start, int count, int after) {}
});
我想让建议继续发挥作用,但这里似乎有一些奇怪的互动

有没有办法a)在整个单词处于“建议模式”时防止EditText为空,或者至少检查EditText是否处于“建议”状态,以确定EditText是否确实为空,或者b)关闭建议?我已经尝试了
android:inputType=“text | textCapWords | textNoSuggestions”
,并通过
mText.setInputType(inputType.TYPE_text_FLAG_NO_SUGGESTIONS)进行设置在上面的代码中,但联想3.1平板电脑上不断出现建议

更新:


我看到API 14在EditText中添加了一个
isInputMethodTarget()
方法,我可以使用它来检查活动建议并禁用验证。。。但我正在运行API 12。也许我可以直接查看IME,看看这些建议是否有效?

您能解释一下这些建议吗?你是从你的字符串中得到建议,还是在谈论更多关于过滤文本的内容?你能解释一下这些建议吗?你是从你的字符串中得到建议,还是在谈论更多关于过滤文本的内容?