5

我使用android-saripaar库。

我可以使用 . 检查所有EditText字段的输入数据的正确性validate()。如果我在正确数据中填写EditText错误,只要我再次调用 a ,错误就不会消失validate()

如何在仅输入特定文本后检查有效性EditText并从中删除错误?

谢谢。

4

1 回答 1

6

您可以将 SaripaarMode.IMMEDIATETextWatcher实例结合使用来完成您正在寻找的内容。

  1. @Order每个具有 Saripaar 注释的视图字段都使用注释。这是使用立即验证模式所必需的。如果您想以特定顺序验证规则,每个 saripaar 注释都有一个sequence属性。该sequence属性是可选的,但如果您希望以特定顺序验证规则,该属性非常有用。
    @订单(1)
    @NotEmpty(序列 = 1)
    @Email(seqence = 2)
    私人EditText mEmailEditText;

    @订单(2)
    @密码
    私有 EditText mPasswordEditText;
  1. 将模式设置为立即mValidator.setMode(Mode.IMMEDIATE)

  2. TextWatchers / 适当的侦听器添加到您的小部件。

    TextWatcher 验证TextWatcher = new TextWatcher() {

        @覆盖
        无效 afterTextChanged(Editable s) {
            mValidator.validate();
        }

        // 其他要覆盖的方法 ...
    }

    mEmailEditText.addTextChangedListener(validationTextWatcher);
    mPasswordEditText.addTextChangedListener(validationTextWatcher);
  1. (可选)有一个默认ViewValidatedAction实现会在EditText字段有效时自动清除错误。如果您的表单使用备用错误显示机制/小部件,您可以通过指定您自己的ViewValidatedAction实例来清除它们。
    mValidator.setViewValidatedAction(新 ViewValidatedAction() {

        @覆盖
        无效 onAllRulesPassed(查看视图){
            // ... 根据视图类型清除错误
        }
    });

披露:我是 Saripaar 的作者

于 2015-06-06T04:11:11.233 回答