我想使用编辑文本从用户输入日期。 所以我使用了setOnTouchListener,如下所示
editText_DOB.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v == editText_DOB)
showDialog(DATE_DIALOG_ID);
return false;
}
});
同时我在编辑文本上使用Validate使用添加文本ChangedListener并在提交按钮上单击,并在文本更改的侦听器上显示错误,
if (editText_DOB.getText().toString().length() == 0) {
editText_DOB.setError(Html.fromHtml("<font color='red'>DOB is required!</font>"));
我的问题是,当我先按下提交按钮时,它会在编辑文本上显示红色标记,没关系。但是当我单击“编辑文本”时,会出现“日期工作者”对话框并将日期值设置为“编辑文本”。但是红色标记仍然显示并且对文本没有影响。
答案 0 :(得分:2)
editText_DOB.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v == editText_DOB)
{
editText_DOB.setError("");
showDialog(DATE_DIALOG_ID);}
return false;
}
});
答案 1 :(得分:2)
尝试在显示日期对话框之前设置EditText setError(null):
editText_DOB.setError(null);
showDialog(DATE_DIALOG_ID);
答案 2 :(得分:1)
我将set error添加为null,其中我在Edit Text中设置了Text Date值。
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
editText_DOB.setText(date_selected);
editText_DOB.setError(null);
}