Editext setError消失

时间:2017-07-06 15:34:33

标签: android validation android-edittext

我有一个Editext,我正在执行运行良好的验证,但是按空格msg得到了消失。任何人都可以指出我们做错了什么。 请在下面找到更清晰的图片: enter image description here

按空格键后: enter image description here

我们正在使用以下代码:

        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;
            }
     }

1 个答案:

答案 0 :(得分:1)

原始答案

根据屏幕截图,输入的文字为10个字符。

<击>

按空格会再添加一个字符,使txtEmail.getText().toString().length()成为11,并触发TextWatcher,如果文本为10个字符或更短,则只显示错误。