2014-12-05 76 views
1

我想使用编辑文本输入用户的日期。 所以我用setOnTouchListener,像下面EditText addTextChangedListener不影响当我用setOnTouchListener具有相同的editText?

editText_DOB.setOnTouchListener(new OnTouchListener() { 
     @Override 
public boolean onTouch(View v, MotionEvent event) { 
if (v == editText_DOB) 
showDialog(DATE_DIALOG_ID); 
return false; 
} 
}); 

,并在同一时间,我用添加文本ChangedListener而对提交按钮点击,并显示在文本改变了听众的错误,使用验证上编辑文本

if (editText_DOB.getText().toString().length() == 0) { 
editText_DOB.setError(Html.fromHtml("<font color='red'>DOB is required!</font>")); 

我的问题是,当我先按下提交按钮时,它在编辑文本上显示红色标记,这是可以的。但是当我点击编辑文本时,会出现Date Piker对话框并将日期值设置为编辑文本。但红色标记仍然显示,并且对文本没有改变。

回答

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; 
    } 
}); 
+0

感谢@Gopikrishanan – 2014-12-05 08:57:08

+0

:)高兴它帮助。 – 2014-12-05 08:58:36

1

我将下面的设置错误添加为null,我在文本中设置文本日期值。

public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 

     editText_DOB.setText(date_selected); 
     editText_DOB.setError(null); 
    } 
2

尝试显示日期对话框之前设置的EditText SETERROR(空):

editText_DOB.setError(null); 
showDialog(DATE_DIALOG_ID); 
相关问题