我使用android-saripaar库。
我可以使用EditText
检查输入数据正确性的所有validate()
字段。如果我在EditText
上填写错误的正确数据,只要我再次调用validate()
,错误就不会消失。
如何仅在某个EditText
输入文字后检查有效性,并从中删除错误?
感谢。
答案 0 :(得分:6)
您可以将Saripaar Mode.IMMEDIATE
与TextWatcher
个实例结合使用,以实现您的目标。
@Order
注释。这是使用立即验证模式所必需的。如果要按特定顺序验证规则,则每个saripaar注释都具有sequence
属性。 sequence
属性是可选的,但如果您希望以特定顺序验证规则,则非常有用。@Order(1) @NotEmpty(sequence = 1) @Email(seqence = 2) private EditText mEmailEditText; @Order(2) @Password private EditText mPasswordEditText;
将模式设置为立即mValidator.setMode(Mode.IMMEDIATE)
将TextWatcher
个/适当的侦听器添加到您的小部件中。
TextWatcher validationTextWatcher = new TextWatcher() { @Override void afterTextChanged(Editable s) { mValidator.validate(); } // Other methods to override ... } mEmailEditText.addTextChangedListener(validationTextWatcher); mPasswordEditText.addTextChangedListener(validationTextWatcher);
ViewValidatedAction
实施会在EditText
字段有效时自动清除错误。如果表单使用备用错误显示机制/窗口小部件,则可以通过指定自己的ViewValidatedAction
实例来清除它们。mValidator.setViewValidatedAction(new ViewValidatedAction() { @Override void onAllRulesPassed(View view) { // ... clear errors based on the view type } });
披露:我是Saripaar的作者