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

Android 在键入文本时验证EditText以删除setError,android,Android,我正在尝试验证EditText字段中的文本输入。我在字段中没有输入文本时创建了setErrors。按下Submit按钮时,将验证这些字段 如果为空字段抛出setError,则在该字段中键入文本,当按下Submit或在该字段中按下enter键时,setError将消失-而不是当用户在空字段中键入文本时,然后手动点击另一个字段。即使输入了文本,第一个字段的setError仍处于活动状态 我认为可以验证EditText,因为键入文本可以解决此问题。 这是正确的方法吗 EditText toText =

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

如果为空字段抛出
setError
,则在该字段中键入文本,当按下
Submi
t或在该字段中按下enter键时,
setError
将消失-而不是当用户在空字段中键入文本时,然后手动点击另一个字段。即使输入了文本,第一个字段的
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中输入文本
  • 用户单击Submit并显示setError消息
  • 用户在toText中键入文本
  • 用户点击主题文本
  • toText仍然显示setError
  • 我想删除此场景中的setError
在以下情况下,toText将删除setError:

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

    • 事实上,我没有完全理解你。你为什么不用这样的东西:

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

      或者,您可以使用
      正则表达式
      验证输入

      我认为您可以执行
      subjectText.setError(null)按钮的
      onClick()
      的第一行中,单击code>。