我正在使用EditText和TextInputLayout。这是我用来显示错误的代码。
private boolean validateEmail() {
String email = inputEmail.getText().toString().trim();
if (email.isEmpty() || !isValidEmail(email)) {
inputLayoutEmail.setErrorEnabled(true);
inputLayoutEmail.setError(getString(R.string.err_msg_email));
requestFocus(inputEmail);
return false;
} else {
inputLayoutEmail.setErrorEnabled(false);
}
return true;
}
我在edittext的textwatcher中调用此方法,如此链接http://www.androidhive.info/2015/09/android-material-design-floating-labels-for-edittext/
一旦我输入有效输入然后清除它,它将按预期显示错误消息,但如果我再次输入文本然后再次清除它将无法工作。我没有显示任何错误消息。
我正在使用compile 'com.android.support:design:23.1.0'
库。
inputLayoutEmail.setErrorEnabled(true);
正在调用,但错误未显示。可能是什么问题?我怎么解决这个问题?
答案 0 :(得分:10)
在您的布局文件中,确保您拥有' wrap_content'对于TextInputLayout而不是维度。这对我来说是个问题。
答案 1 :(得分:6)
你只需要申请,
inputLayoutEmail.setErrorEnabled(false);
inputLayoutEmail.setError(null);
它对我有用。希望它也适合你。
答案 2 :(得分:2)
这个例子对我有用。
你使用
compile 'com.android.support:design:23.1.0'
,右边是
compile 'com.android.support:design:23.0.1'
答案 3 :(得分:0)
使用Android支持库,修订版23。4。0(2016年5月)
修复了TextInputLayout
在API级别21 - 22 setErrorEnabled(false)
上Vanilla
之后未清除错误色调的问题(Issue 202829)
答案 4 :(得分:0)
我遇到了同样的问题,并且我正在使用数据绑定,因此添加以下行解决了我的问题: app:errorEnabled =“ true”