如何手动验证EditText?

How to manually validate EditText?

我有一个用户无法编辑的 EditText。 我正在通过日历对象为 EditText 赋值。 因此,当用户在没有 selecting 时间的情况下提交表单时,它将在 select 时间显示消息。

etTime.setError("Select Time");

现在用户 select 日历中的日期。

etTime.setText(functionWhichReturnsSelectedTime());

我说的是出现在 EditText 一侧的红色警报标志!!!

但错误消息并没有消失。 监听器只监听 EditText 的 textChanged() 并检查 EditText 是否为空? 但我没有向用户提供访问 EditText 的可编辑性。所以错误不会消失。

那么我该如何手动执行此操作?

如果要删除编辑文本上的错误指示器,必须调用:

etTime.setError(null);

此外,重写 afterTextChanged() 方法是个好主意,您可以在消除错误之前执行验证。