2012-11-25 86 views
1

我試圖來驗證的EditText字段的文本輸入。我在輸入字段中沒有文字時創建了setErrors。當按下按鈕Submit時,這些字段被驗證。驗證的EditText文本鍵入刪除SETERROR

如果setError拋出一個空場,然後文本在字段中鍵入時,setError會當按下Submi噸消失或者當按下Enter鍵時在現場 - 而不是當用戶鍵入的文本中空白字段,然後手動輕觸另一個字段。即使輸入了文本,第一個字段的setErro r仍然處於活動狀態。作爲文本鍵入來解決這個問題

我想EditText可以驗證。
這是正確的方法嗎?

EditText toText = (EditText) findViewById(R.id.to); 
EditText subjectText = (EditText) findViewById(R.id.subject); 

if (toText.getText().length() == 0) { 
    toText.setError("Please enter a valid recipient"); 
} 

else { 
    toText.setError(null); 
} 

if (subjectText.getText().length() == 0) { 
    subjectText.setError("Please enter a subject"); 
} 

else { 
    subjectText.setError(null); 
} 

所以我想要實現:

  • 用戶忘記在toText輸入文字
  • 用戶點擊提交,並出現SETERROR消息toText
  • 用戶類型的文本
  • 用戶輕敲subjectText
  • toText仍顯示SETERROR
  • 我想刪除SETERROR在這種情況下

toText將刪除SETERROR如果:

  • 用戶點擊再次提交重新驗證領域
  • 用戶點擊鍵盤,以推進對進入下一場

回答

0

其實我沒有得到你徹底。你爲什麼不使用這樣的事情:

//EditText et; 

if(et.getText().length() == 0) { 
//the field is empty 
} 
else { 
//perform the action 
} 

或者您可以使用Regular Expressions驗證輸入

+0

對不起,我已經編輯我的帖子,包括代碼。 – user1850795

+0

可能是我認爲你可以做'subjectText.setError(NULL);'在'的onClick(第一行)'的'提交Button'。 –