TextInputLayout的setError未显示错误

时间:2016-06-27 11:05:20

标签: android

我使用以下代码在EditText中显示TextInputLayout,因此我可以使用setError()但不使用TextInputLayout的提示:

        <android.support.design.widget.TextInputLayout android:id="@+id/et_title_wrapper"
            android:hint=" "
            android:layout_marginLeft="32dp" android:layout_marginRight="32dp"
            android:layout_width="match_parent" android:layout_height="64dp">

        <EditText android:id="@+id/et_title" android:hint="@string/video_title"
            android:background="@android:color/transparent"
            android:textSize="14sp"
            android:layout_width="match_parent" android:layout_height="32dp"
            android:gravity="top" android:paddingTop="0dp"
            android:layout_marginBottom="@dimen/form_edittext_bottom_margin"
            android:singleLine="true" android:imeOptions="actionNext" />

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

然而结果是没有出现任何错误。

@Override
public void showErrorTitle() {
    Log.i(TAG, "showErrorTitle ");
    etTitleWrapper.setError("You need to add title");
    etTitleWrapper.setErrorEnabled(true);
}

我可以使用日志确认showErrorTitle()正在被触发。

2 个答案:

答案 0 :(得分:0)

这应该可以,但您可以更改顺序并查看。

更改订单

etTitleWrapper.setErrorEnabled(true);
etTitleWrapper.setError("You need to add title");

答案 1 :(得分:0)

在TextInputLayout xml

中添加此行
  

app:errorEnabled="true"

修改     

    <EditText android:id="@+id/et_title" android:hint="@string/video_title"
        android:background="@android:color/transparent"
        android:textSize="14sp"
        android:layout_width="match_parent" android:layout_height="32dp"
        android:gravity="top" android:paddingTop="0dp"
        android:layout_marginBottom="@dimen/form_edittext_bottom_margin"
        android:singleLine="true" android:imeOptions="actionNext" />

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