是的,我编写了一个库来处理Android上的验证。它验证
EditText
,
CheckBox
,
RadioButton
,
Spinner
默认情况下。您还可以使用注释来简化验证。
您不受内置注释或规则的限制。你可以一直延长
Rule
在库中初始化以验证自定义视图和规则。
它还支持异步验证(比如从远程服务器检查唯一的用户名)。
您可以从中查看项目页
here
.
我还写了一篇
blog
它描述了当内置规则不足时如何编写自定义规则。
希望这有帮助。
编辑(作为对琼尼评论的澄清)
是的,你所呈现的是有意义的。要注册新帐户并在同一个Web服务中验证,调用可能需要
n
打电话注册一个新帐户,但是我在博客中指定的例子是
n + 1
呼叫注册新帐户。然而,这个例子只是展示了
Validator
.
为了完成你想要的,你可以写一个新的规则。
Rule registerIfUniqueRule = new Rule("Username must be unique.") {
public boolean isValid(EditText view) {
String username = view.getText().toString();
boolean accountRegistered = false;
// Make a call to your web service
// Mode codeâ¦
return accountRegistered;
}
}
现在将此规则添加到
验证器
实例。
validator.put(usernameEditText, registerIfUniqueRule);
从你的任何一个
EventListener
s调用异步验证方法。
validator.validateAsync();
您已经完成了;)验证程序可能有限制,但在您提到的情况下,我们将考虑使用API的新方法,一旦我们习惯了它。