首页 > 解决方案 > 如何从 Android 中的 EditText 中删除 getError 消息

问题描述

当用户将该字段保留为空白时,我对EditText使用了setError方法。但是,当用户再次尝试写下密码时,我希望删除该错误红色图标和消息。我尝试了代码中所写的setError(null),但它仍然无法正常工作。

 String val = password.getEditText().getText().toString();

        if (val.isEmpty()) {
            password.setError("Please enter password");
            return false;
        } else {
            password.setError(null);
            password.setErrorEnabled(false);
            return true;
        }

标签: androidandroid-studioandroid-textinputlayout

解决方案


您可以使用 TextWatcher 来监视 EditText 值的变化。参考以下代码:

 password.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
           if (s.toString().isEmpty()) {
                password.setError("Please enter password");
                return false;
            } else {
                password.setError(null);
                password.setErrorEnabled(false);
                return true;
            }
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
            // TODO Auto-generated method stub
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
            // TODO Auto-generated method stub
        }
    });

推荐阅读