我想在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(),但有一些简单的解决方案或我正在以错误的方式做某事。请帮忙!
答案 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);
}
}
希望有所帮助