Android TextInputLayout未显示错误
我正在将EditText与TextInputLayout一起使用。这是我用来显示错误的代码Android TextInputLayout未显示错误,android,validation,android-edittext,textinputlayout,Android,Validation,Android Edittext,Textinputlayout,我正在将EditText与TextInputLayout一起使用。这是我用来显示错误的代码 private boolean validateEmail() { String email = inputEmail.getText().toString().trim(); if (email.isEmpty() || !isValidEmail(email)) { inputLayoutEmail.setErrorEnabled(true); i
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中调用这个方法,就像在这个链接中一样
一旦我输入了一个有效的输入,然后清除它,它将显示错误消息,正如预期的那样,但如果我再次输入文本,然后再次清除它,它将不起作用。也就是说,它没有显示任何错误消息
我正在使用compile'com.android.support:design:23.1.0'
library
inputLayoutEmail.setErrorEnabled(true);
正在调用,但未显示错误。有什么问题吗?我如何解决这个问题?这个例子对我很有用 你用
compile 'com.android.support:design:23.1.0'
正确的答案是
compile 'com.android.support:design:23.0.1'
使用Android支持库,版本23.4.0(2016年5月) 修复了API级别21-22上设置错误启用(false)后,
TextInputLayout
未清除错误色调的问题
inputLayoutEmail.setErrorEnabled(false);
inputLayoutEmail.setError(null);
这对我有用。希望它也适用于您。在您的版面文件中,确保您有用于文本输入版面的
layout\u height=“wrap\u content”
而不是维度。这就是我的问题所在。我也遇到了同样的问题,并且我使用了数据绑定,所以添加以下行解决了我的问题:
app:errorEnabled=“true”更改请求焦点(inputEmail);->inputEmail.requestFocus();它第一次工作。第二次以后,它不会显示错误。但会获得焦点。确定。我知道了-您使用compile'com.android.support:design:23.1.0',正确的是compile'com.android.support:design:23.0.1',谢谢..它与com.android一起工作。support:design:23.0.1您可以在您的答案中添加这个吗?这样我就可以接受您的答案了。如果我的compile sdk版本为24,该怎么办?这个问题似乎在23.4.0.在所有班级进行了4小时的调查后,解决了我的问题。。thanks@mg3,很高兴我能帮忙。我花了比我想承认的更多的时间在这个问题上,没有看到这个解决方案发布在任何其他地方,所以我想其他人可能会受益!似乎实际上是布局高度更具体-它不需要设置为包装这样的内容-只需要足够大-但是的,谢谢我也找不到任何地方@philthomas26从答案和你的评论中,我得到了这个想法,它实际上与身高有关,现在起作用了,谢谢你是最好的!