EditText不会显示错误消息只显示错误图标

时间:2017-02-08 08:10:38

标签: android android-edittext

我想在edittext中插入错误的值时显示错误,下面是我的xml文件

 <EditText
                android:id="@+id/BasicInfoDOBEditText"
                android:onClick="onCalenderClick"
                style="@style/TableRowSearchResultView"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:focusable="false"
                android:inputType="date" />

以及我如何尝试显示错误就是这样。

                dateEditText.setFocusable(true);
                dateEditText.requestFocus();
                dateEditText.setError("wrong input");

但它只显示edittext中的错误图标而没有&#34;输入错误&#34;。我知道有一些解决方案,如扩展EditText和覆盖setError(),但有一些简单的解决方案或我正在以错误的方式做某事。请帮忙!

1 个答案:

答案 0 :(得分:0)

在editText上显示错误我通常更喜欢TextInputLayout。

XML

<android.support.design.widget.TextInputLayout
    android:layout_margin="@dimen/margin_full"
    android:id="@+id/input_layout_new_todo"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/toolbar_create_todo">

    <EditText
        android:id="@+id/et_new_todo"
        android:inputType="text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint_todo_create_new"
        />

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

JAVA

private void getEtData(){
    title = todoEt.getText().toString();
    if(title.isEmpty() || title == null){
        inputLayoutHolder.setErrorEnabled(true);
        inputLayoutHolder.setError(getResources().getString(R.string.error_no_et_entry));
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            @Override
            public void run() {
                inputLayoutHolder.setErrorEnabled(false);
            }
        },1500);
    }else{
        title = todoEt.getText().toString();
        Log.i(TAG,"todo title: "+title);
    }
}

希望有所帮助