我正在使用com.android.support:design:23.3.0中的TextInputLayout
当我第一次应用错误时,它会正确显示。
mInputPassword.setError(getString(R.string.error_invalid_password));
mInputEmail.setError(getString(R.string.error_field_required));
在下次登录尝试时,我清除错误。
mInputEmail.setError(null);
mInputPassword.setError(null);
然后我运行验证并使用与上面相同的代码再次设置错误,但这次应用了红线但缺少错误文本。
任何人对于为什么会发生这种情况或遇到类似情况有什么想法?
我看到类似的报道here,但它是旧设计库的版本,并且不知道它是否仍然是我正在使用的版本中的问题,
答案 0 :(得分:12)
您只需执行以下步骤:
setErrorEnabled(true);
setError("error");
清算:
setError(null);
setErrorEnabled(false);
重复第一步设置新错误。 setError(null)
会清除错误消息和图标,因此我认为要展示的视图已经消失,setErrorEnabled(false)
会重置它。
答案 1 :(得分:0)
您正在清除错误消息字符串:
mInputEmail.setError(null);
mInputPassword.setError(null);
因此,当您重新运行验证时,您将获得一个空白字符串。
如果您希望错误消息消失,请清除textview中的错误文本:
mInputEmail.setText("");
mInputPassword.setText("");