Android TextInputLayout未显示错误

时间:2015-12-17 09:46:57

标签: android validation android-edittext textinputlayout

我正在使用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); 

正在调用,但错误未显示。可能是什么问题?我怎么解决这个问题?

5 个答案:

答案 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”