Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中从EditText中删除getError消息_Android_Android Studio_Android Textinputlayout - Fatal编程技术网

如何在android中从EditText中删除getError消息

如何在android中从EditText中删除getError消息,android,android-studio,android-textinputlayout,Android,Android Studio,Android Textinputlayout,我使用了setError方法处理EditText,当用户将该字段保留为空时。但是,当用户再次尝试写下密码时,我希望删除错误红色图标和消息。我尝试了代码中所写的setError(null),但仍然不起作用 String val = password.getEditText().getText().toString(); if (val.isEmpty()) { password.setError("Please enter password&q

我使用了setError方法处理EditText,当用户将该字段保留为空时。但是,当用户再次尝试写下密码时,我希望删除错误红色图标和消息。我尝试了代码中所写的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;
        }

您可以使用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
        }
    });

我没有在中看到
setError()
setErrorEnabled()
。我很确定,
EditText
没有
getEditText()
方法。我使用的是TextInputLayout,而不是一个非正常的EditText
setError()
TextView
EditText
extend
TextView
password
必须是TextInputLayout,因为
setError()
setErrorEnabled()
都是可用的。我没有加载任何注释,感谢Rohan对密码类型Hi@AlphaOne的澄清。此addTextChangedListener仅在EditText情况下可用,不适用于TextInputLayout。你能帮我弄清楚用哪一个吗this@Rohanverma您可以尝试以下操作:
view.getEditText().addTextChangedListener()
其中
view
是您的TextLayoutInput的@id,在您的情况下,我认为它是密码。这应该行。@Rohanverma您可以按照Yash的建议使用password.getEditText()。或者你可以给你的编辑文本一个Id,并在这里使用。嗨@YashJoshi和AlphaOne,谢谢你,伙计,现在它工作得很好