如何在android-saripaar中重新检查字段?

Mar*_*hov 4 java android android-edittext saripaar

我使用android-saripaar库.

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

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

谢谢.

Rag*_*har 6

您可以将Saripaar Mode.IMMEDIATETextWatcher实例结合使用来实现您的目标.

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

    @Order(2)
    @Password
    private EditText mPasswordEditText;
  1. 将模式设置为立即 mValidator.setMode(Mode.IMMEDIATE)

  2. TextWatcher为您的小部件添加适当的侦听器.

    TextWatcher validationTextWatcher = new TextWatcher() {

        @Override
        void afterTextChanged(Editable s) {
            mValidator.validate();
        }

        // Other methods to override ...
    }

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

        @Override
        void onAllRulesPassed(View view) {
            // ... clear errors based on the view type
        }
    });

披露:我是Saripaar的作者