TextInputLayout中的错误甚至不再显示,甚至调用setErrorEnabled(true)

时间:2016-07-25 14:22:48

标签: android android-textinputlayout

我有TextInputLayout这样的

<android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/edt_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/title_what_should_we_call_you" />

</android.support.design.widget.TextInputLayout>

点击提交按钮时的有效名称我使用

private boolean validateName() {
        if (edtName.getText().toString().trim().isEmpty()) {
            inputLayoutName.setErrorEnabled(true);
            inputLayoutName.setError("Enter name");    
            return false;
        } else {
            inputLayoutName.setErrorEnabled(false);
        }
        return true;
 }

当我运行应用时,请不要输入值来命名并点击提交,错误显示(正确)。
然后我输入一些值来命名 - &gt;点按提交 - &gt;错误隐藏(正确)
但后来我清除了所有名字 - &gt;点按提交 - &gt; 错误未显示

为什么会这样?任何帮助或建议都将非常感激。

如果我不使用setErrorEnabled(false);并将错误消息设置为null,则错误消息视图仍然不可见

1 个答案:

答案 0 :(得分:0)

我做了一个样本来测试这个,我所要做的就是:

if (edtName.getText().toString().trim().isEmpty()) {
      inputLayoutName.setError("Enter name");    
      return false;
} else {
      inputLayoutName.setErrorEnabled(false);
}

return true;

错误会在您的用例中重新出现。你能来看看吗?