使用setError()
方法显示正常错误:
问题:
好的,我在同一个对话框中有另一个EditText
,其OnClickListener
用于显示DatePicker
对话框。当我setError()
显示红色警报图标时,当我点击该图标时,OnClick
上的EditText
仍会处理该事件并弹出DatePicker
,因此我无法查看错误消息。
我想要的是:如果我点击图标,它必须显示错误消息,如果我点击图标外面,它应显示DatePicker
。
答案 0 :(得分:2)
哦,伙计,我2天前确实遇到过这个问题。我发现没有办法使它既有焦点(为了显示消息,也创建了日期选择器的弹出窗口。我最终做的是将m_SomeProperty
包装到EditText
之类的这样:
TextInputLayout
然后我不是在编辑文本上设置错误,而是在<android.support.design.widget.TextInputLayout
android:id="@+id/birthDateInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/input_birth_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/birth_date_hint"
android:inputType="date" />
</android.support.design.widget.TextInputLayout>
上设置错误,而不是像这样:
TextInputLayout
注意:不看起来与
birthDateInputLayout.setErrorEnabled(true); birthDateInputLayout.setError("This field cannot be empty.");
上设置错误的常规方式完全相同,但它确实看起来不错并且解决问题的方式略有不同。
答案 1 :(得分:0)
一个简单的解决方案是检查onclickListener中的错误是否为null。 即,
if(((EditText)view).getError() == null) {
//Handle your click for showing picker
}
答案 2 :(得分:0)
您可以根据您的代码使用以下代码 当完成所有字段和第二个日期编辑文本设置错误为null。任何查询,您可以询问
mEditText.setError(null);//removes error
mEditText.clearFocus(); //clear focus from edit text
答案 3 :(得分:0)
试试这个,
onClick(View v){
if(editText.getError() != null ){
editText.requestFocus(); // to show error message
}else{
// open date picker dialog here or do you stuff here
}
希望有所帮助