在键入文本时验证EditText以删除setError

时间:2012-11-25 08:27:41

标签: android

我正在尝试验证EditText字段中的文本条目。当在字段中输入没有文本时,我创建了setErrors。按下Submit按钮时会验证字段。

如果为空字段抛出setError,则在字段中键入文本,按下setError t或按下回车键时Submi将消失字段 - 不是当用户在空字段中键入文本时,而是手动点击另一个字段。即使已输入文本,第一个字段的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:

  • 用户再次点击“提交”以重新验证字段
  • 用户点击键盘上的Enter键进入下一个字段

1 个答案:

答案 0 :(得分:0)

实际上我并没有完全找到你。为什么不使用这样的东西:

//EditText et;

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

或者您可以使用Regular Expressions来验证输入