标签:sdn ida ros post return over mod 空值 ber
简单易用的Android校验库。
这是一个简单Android校验库,按配置来验证用户输入的表单信息。
仅仅须要几行代码,就可以验证用户输入,而且将验证错误反馈给用户。
它内置了大量经常使用的验证类型,足以满足你的功能需求。
它另一个可扩展的验证选项。你能够通过扩展接口加入你须要的验证方式。
Add repository
dependencies {
compile ‘com.github.chenyoca:android-validation:1.0@aar‘
}
Maven
<dependency>
<groupId>com.github.chenyoca</groupId>
<artifactId>android-validation</artifactId>
<version>1.0</version>
<type>aar</type>
<scope>provided</scope>
</dependency>
通过 View ID 来绑定校验配置信息
// 自己定义显示出错消息的方式,默认是在 EditText 右边显示一个浮动提示框。
MessageDisplay messageDisplay = new MessageDisplay() {
@Override
public void dismiss(EditText field) {
field.setError(null);
}
@Override
public void show(EditText field, String message) {
field.setError(message);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
};
// 绑定表单View
final LinearLayout form = (LinearLayout) findViewById(R.id.form);
// 默认是在 EditText 右边显示一个浮动提示框。
// final FormValidator av = new FormValidator(form);
// 指定自己定义显示出错消息的方式,
final FormValidator av = new FormValidator(form, messageDisplay);
av.add(R.id.form_field_1, Type.Required, Type.MobilePhone);
av.add(R.id.form_field_2, Type.CreditCard);
av.add(R.id.form_field_3, Type.Digits, Type.MaxLength.value(20));
av.add(R.id.form_field_4, Type.Email);
// 使用`ValuesLoader`使得当校验时。才载入校验參数`values`。
av.add(R.id.form_field_5, Type.EqualsTo.values(new TextViewValuesLoader(form,R.id.form_field_4)));
av.add(R.id.form_field_6, Type.Host);
av.add(R.id.form_field_7, Type.URL);
av.add(R.id.form_field_8, Type.MaxLength.value(5));
av.add(R.id.form_field_9, Type.MinLength.value(4));
av.add(R.id.form_field_10, Type.RangeLength.values(4,8));
av.add(R.id.form_field_11, Type.NotBlank);
av.add(R.id.form_field_12, Type.Numeric);
av.add(R.id.form_field_13, Type.MaxValue.value(100));
av.add(R.id.form_field_14, Type.MinValue.value(20));
av.add(R.id.form_field_15, Type.RangeValue.values(18,30));
// 加入不在Form中的输入框
EditText inputNotInForm = (EditText)findViewById(R.id.input_not_in_form);
av.add(inputNotInForm, Type.IsTime);
// 输出调试信息
av.debug(true);
// 应用输入框的输入法布局样式
av.applyInputType();
TestResult r = av.test();
if(r.passed){
// 校验通过
}else{
// 校验失败
}
通过 FormValidator 的扩展接口,加入你自己定义的校验实现类
// 加入到某个ViewID的输入对象中:
formValidator.add(R.id.username, new AbstractValidator("出错时。此消息被返回并显示到EditText中") {
@Override
public boolean test(String inputValue) {
// 校验通过时返回 true
return inputValue.equal("AABB");
}
});
// 加入到某个View的输入对象中:
formValidator.add(passwordInput, new AbstractValidator("出错时,此消息被返回并显示到EditText中") {
@Override
public boolean test(String inputValue) {
// 校验通过时返回 true
return inputValue.equal("CCDD");
}
});
校验顺序按add(...)
加入配置的顺序进行校验。
假设加入 Required
校验类型,则 Required
不管在哪个顺序被加入,都会被首先校验。
Required
校验类型对其他类型的影响:
当EditText为空值时,假设加入Required
校验规则。则校验失败。假设没有,则校验通过并跳过后面的校验类型。
自己定义消息中假设须要与 value(...) / values(...) 中的參数匹配。请使用 {$1}
和 {$2}
做占位符。
e.g:
Types.MaxLength.values(10,140).message("您最多能够输入{$1}到{$2}个文字!
");
当校验失败时。提示的消息内容为:您最多能够输入10到140个文字!
如“最大长度”、“邮件地址”等校验条件。能够将EditText的输入类型自己主动切换至对应类型。
String username = validator.getValue(R.id.form_field_1);
String username = validator.getExtraValue(R.id.form_field_others);
EditText username = validator.getView(R.id.form_field_1,EditText.class);
标签:sdn ida ros post return over mod 空值 ber
原文地址:http://www.cnblogs.com/zsychanpin/p/6895506.html