Android的TextInputLayout没有显示错误信息。

8
我正在使用带有TextInputLayout的EditText进行操作。以下是显示错误的代码:
  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); 

在调用时没有显示错误信息,可能出了什么问题?我该如何解决?


改成inputEmail.requestFocus(); - Thomas R.
5个回答

49
在您的布局文件中,确保layout_height="wrap_content"用于 TextInputLayout 而不是一个固定的尺寸。这正是导致我的问题的原因。

2
在所有的类中调查了4小时后终于解决了我的问题...谢谢。 - LearningPath
1
@mg3,很高兴我能帮到你。我在这上面花费了比我想象中更多的时间,并没有看到其他地方发布过这个解决方案,所以我认为其他人可能会受益! - aaronvargas
4
似乎实际上是layout_height更具体地说 - 它不需要被设置为wrap_content,只需要足够大即可 - 但是是的,谢谢,我也找不到这个信息!! - philthomas26
1
从@philthomas26的回答和您的评论中,我得到了这个想法,它实际上与高度有关,现在它正在工作,谢谢。 - Rai_Gaurav
你是最棒的! - Bassem Wissa
@aaronvargas 非常感谢你提供的出色答案,我和LearningPath一样也浪费了大约4个小时的时间。为什么Google不能充分说明这种问题呢? - Vivek Thummar

7

您只需要申请,

inputLayoutEmail.setErrorEnabled(false);
inputLayoutEmail.setError(null);

对我来说起作用了,希望你也能行。


3
这个例子对我有用。
你使用
compile 'com.android.support:design:23.1.0' 

左边的是

正确的是

compile 'com.android.support:design:23.0.1' 

3
第一次运行时它能正常工作。从第二次开始它不会显示错误,但会获取焦点。 - Anu
2
好的,我明白了 - 你使用的是compile 'com.android.support:design:23.1.0',正确的应该是compile 'com.android.support:design:23.0.1'。 - Silwester
谢谢。它与com.android.support:design:23.0.1一起工作。 - Anu
请您在答案中添加这个内容,这样我就可以接受您的答案了。 - Anu
如果我的编译SDK版本是24呢? - Ali Ahmed

1
我遇到了同样的问题,我正在使用数据绑定,因此添加以下行解决了我的问题: app:errorEnabled="true"

0

使用Android支持库,版本号为23.4.0(2016年5月)

修复了一个问题,在API级别21-22上,TextInputLayout在调用setErrorEnabled(false)后无法清除错误色调(Issue 202829)


这个问题在23.4.0版本中似乎没有被修复。 - mkki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接