清除

时间:2016-04-28 10:56:20

标签: android user-interface android-textinputlayout

我正在使用com.android.support:design:23.3.0中的TextInputLayout

当我第一次应用错误时,它会正确显示。

mInputPassword.setError(getString(R.string.error_invalid_password));
mInputEmail.setError(getString(R.string.error_field_required));

enter image description here

在下次登录尝试时,我清除错误。

mInputEmail.setError(null);
mInputPassword.setError(null);

然后我运行验证并使用与上面相同的代码再次设置错误,但这次应用了红线但缺少错误文本。 enter image description here

任何人对于为什么会发生这种情况或遇到类似情况有什么想法?

我看到类似的报道here,但它是旧设计库的版本,并且不知道它是否仍然是我正在使用的版本中的问题,

2 个答案:

答案 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("");