1

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

如果setError为空字段抛出 a ,则在该字段中键入文本,当按下 t 或在该字段中按下回车键时setError将消失- 不是当用户在空字段中键入文本,然后手动点击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 中输入文本
  • 用户点击主题文本
  • toText 仍然显示 setError
  • 我想在这种情况下删除 setError

在以下情况下,toText 将删除 setError:

  • 用户再次单击提交以重新验证字段
  • 用户按键盘上的 Enter 键前进到下一个字段
4

1 回答 1

0

其实我没有完全得到你。你为什么不使用这样的东西:

//EditText et;

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

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

于 2012-11-25T09:16:22.293 回答