我使用android-saripaar库。
我可以使用 . 检查所有EditText
字段的输入数据的正确性validate()
。如果我在正确数据中填写EditText
错误,只要我再次调用 a ,错误就不会消失validate()
。
如何在仅输入特定文本后检查有效性EditText
并从中删除错误?
谢谢。
我使用android-saripaar库。
我可以使用 . 检查所有EditText
字段的输入数据的正确性validate()
。如果我在正确数据中填写EditText
错误,只要我再次调用 a ,错误就不会消失validate()
。
如何在仅输入特定文本后检查有效性EditText
并从中删除错误?
谢谢。
您可以将 SaripaarMode.IMMEDIATE
与TextWatcher
实例结合使用来完成您正在寻找的内容。
@Order
每个具有 Saripaar 注释的视图字段都使用注释。这是使用立即验证模式所必需的。如果您想以特定顺序验证规则,每个 saripaar 注释都有一个sequence
属性。该sequence
属性是可选的,但如果您希望以特定顺序验证规则,该属性非常有用。@订单(1) @NotEmpty(序列 = 1) @Email(seqence = 2) 私人EditText mEmailEditText; @订单(2) @密码 私有 EditText mPasswordEditText;
将模式设置为立即mValidator.setMode(Mode.IMMEDIATE)
将TextWatcher
s / 适当的侦听器添加到您的小部件。
TextWatcher 验证TextWatcher = new TextWatcher() { @覆盖 无效 afterTextChanged(Editable s) { mValidator.validate(); } // 其他要覆盖的方法 ... } mEmailEditText.addTextChangedListener(validationTextWatcher); mPasswordEditText.addTextChangedListener(validationTextWatcher);
ViewValidatedAction
实现会在EditText
字段有效时自动清除错误。如果您的表单使用备用错误显示机制/小部件,您可以通过指定您自己的ViewValidatedAction
实例来清除它们。mValidator.setViewValidatedAction(新 ViewValidatedAction() { @覆盖 无效 onAllRulesPassed(查看视图){ // ... 根据视图类型清除错误 } });
披露:我是 Saripaar 的作者