我有一个Editext,我正在执行运行良好的验证,但是按空格msg得到了消失。任何人都可以指出我们做错了什么。 请在下面找到更清晰的图片:
我们正在使用以下代码:
txtFullName.addTextChangedListener(new MyTextWatcher(txtFullName));
txtEmail.addTextChangedListener(new MyTextWatcher(txtEmail));
private class MyTextWatcher implements TextWatcher {
private View view;
private MyTextWatcher(View view) {
this.view = view;
}
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
public void afterTextChanged(Editable editable) {
switch (view.getId()) {
case R.id.txtFullName:
if (txtFullName.getText().toString().length() >= 10) {
txtFullName.setError(getString(R.string.limit_exceeds));
txtFullName.requestFocus();
}
break;
case R.id.txtEmail:
if (txtEmail.getText().toString().length() >= 20) {
txtEmail.setError(getString(R.string.limit_exceeds));
txtEmail.requestFocus();
}
break;
default:
break;
}
}
答案 0 :(得分:1)
原始答案
根据屏幕截图,输入的文字为10
个字符。 击>
按空格会再添加一个字符,使txtEmail.getText().toString().length()
成为11
,并触发TextWatcher,如果文本为10个字符或更短,则只显示错误。击>