我使用 android-saripaar图书馆。
我可以使用 validate()
检查所有 EditText
字段中输入数据的正确性。如果我用错误的正确数据填充 EditText
,只要我再次调用 validate()
,错误就不会消失。
如何在特定的 EditText
中输入文本后检查有效性并从中删除错误?
谢谢。
最佳答案
您可以将 Saripaar 的 Mode.IMMEDIATE
与 TextWatcher
实例结合使用来完成您正在寻找的内容。
- 在每个具有 Saripaar 注释的 View 字段中使用
@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 的作者
关于java - 如何重新检查 android-saripaar 中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588122/