使用TextWatcher和建议的EditText

时间:2011-12-21 19:43:40

标签: android android-edittext textwatcher

将应用程序从2.2移动到3.x,我使用TextWatcher进行验证的其中一个EditText表现不佳。简而言之,当用户点击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"有问题的EditText,并在上面的代码中通过mText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);进行设置,但建议仍在Lenovo 3.1平板电脑上进行。

更新

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

0 个答案:

没有答案