当我使用setOnTouchListener使用相同的editText时,EditText addTextChangedListener不起作用?

时间:2014-12-05 07:50:04

标签: android

我想使用编辑文本从用户输入日期。 所以我使用了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>"));

我的问题是,当我先按下提交按钮时,它会在编辑文本上显示红色标记,没关系。但是当我单击“编辑文本”时,会出现“日期工作者”对话框并将日期值设置为“编辑文本”。但是红色标记仍然显示并且对文本没有影响。

3 个答案:

答案 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);
    }