如何通过TextInputEditText检测表单中是否存在已显示的错误提示
检测TextInputEditText错误状态的实现方法
核心原理
只要你是通过系统自带的setError()方法展示错误提示,就可以直接通过对应控件的getError()方法读取当前错误状态,无需自行重复实现校验逻辑:
- 返回值为
null:当前无展示的错误提示 - 返回值为非null值:当前正展示错误提示
不同使用场景的实现
场景1:配合TextInputLayout使用(官方推荐用法)
Android官方推荐将TextInputEditText嵌套在TextInputLayout中使用,错误提示也通过TextInputLayout的setError()方法设置,直接读取TextInputLayout的错误状态即可。
Java示例代码:
// 校验整个表单是否无错误 private boolean isFormNoError() { // 依次检查每个输入项对应的TextInputLayout if (accountLayout.getError() != null) return false; if (pwdLayout.getError() != null) return false; if (verifyCodeLayout.getError() != null) return false; return true; } // 业务逻辑调用 if (isFormNoError()) { // 执行表单提交、页面跳转等后续逻辑 }
Kotlin示例代码:
fun isFormNoError(): Boolean { return listOf(accountLayout, pwdLayout, verifyCodeLayout).all { it.error == null } } // 业务逻辑调用 if (isFormNoError()) { // 执行后续逻辑 }
场景2:直接给TextInputEditText设置错误
如果你是直接调用TextInputEditText本身的setError()方法设置错误提示,直接调用控件的getError()方法即可,判断逻辑和上述完全一致。
注意事项
该方法仅适用于使用系统原生setError()方法展示错误的场景,如果你自定义了错误展示逻辑,需要自行同步错误状态。
内容的提问来源于stack exchange,提问作者user650708
相关产品推荐
相关产品推荐

