2014-12-05 55 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); 
相關問題