Android校验库 - Android Validation
jopen
10年前
简单易用的Android校验库。
已内置支持的校验方式
- Required (必填)
- NotBlank (非空数据)
- Digits (仅数字)
- Date (日期)
- Email (电子邮件)
- EqualTo (与指定值相同)
- Host (主机地址)
- HTTPURL (Http URL)
- IPv4 (IPv4地址)
- LengthInRange (指定长度范围)
- LengthInMin (最小长度)
- LengthInMax (最大长度)
- Numeric (数值)
- CreditCard (信用卡号)
- ValueInRange (最值范围)
- ValueInMin (最小值)
- ValueInMax (最大值)
- ChineseMobilePhone (中国的手机号码)
如何使用?
方式 1:对单个EditText进行校验
1. 构建校验配置
Configuration conf = Configuration.buildIn(context, BuildInTypes.Required, "必填选项!"); conf.add(BuildInTypes.LengthInMax, 20); conf.add(BuildInTypes.Email);
2. 对EditText执行校验
EditText edittext = (EditText) findViewById(R.id.single_test); ResultWrapper result = FormValidator.testField(edittext, conf);
方式 2:对整个Layout内的EditText全部校验
通过 View ID 来绑定校验配置信息
1. 对表单内各个EditText绑定其校验配置
final FormValidator fv = new FormValidator(); // FormValidator.configFor(*Config instance*, *view id for EditText*) fv.configFor(Configuration.buildIn(context, BuildInTypes.ChineseMobilePhone), R.id.form_field_1); fv.configFor(Configuration.buildIn(context, BuildInTypes.CreditCard), R.id.form_field_2); fv.configFor(Configuration.buildIn(context, BuildInTypes.Digits), R.id.form_field_3); fv.configFor(Configuration.buildIn(context, BuildInTypes.Email), R.id.form_field_4); fv.configFor(Configuration.buildIn(context, BuildInTypes.EqualTo, "chenyoca"), R.id.form_field_5); fv.configFor(Configuration.buildIn(context, BuildInTypes.Host), R.id.form_field_6); fv.configFor(Configuration.buildIn(context, BuildInTypes.HTTP_URL), R.id.form_field_7); fv.configFor(Configuration.buildIn(context, BuildInTypes.LengthInMax, 5), R.id.form_field_8); fv.configFor(Configuration.buildIn(context, BuildInTypes.LengthInMin, 4), R.id.form_field_9); fv.configFor(Configuration.buildIn(context, BuildInTypes.LengthInRange, 4,8), R.id.form_field_10); fv.configFor(Configuration.buildIn(context, BuildInTypes.NotBlank), R.id.form_field_11); fv.configFor(Configuration.buildIn(context, BuildInTypes.Numeric), R.id.form_field_12); fv.configFor(Configuration.buildIn(context, BuildInTypes.ValueInMax, 100), R.id.form_field_13); fv.configFor(Configuration.buildIn(context, BuildInTypes.ValueInMin, 20.0), R.id.form_field_14); fv.configFor(Configuration.buildIn(context, BuildInTypes.ValueInRange, 18, 30), R.id.form_field_15);
2. 对表单内执行校验配置
final LinearLayout form = (LinearLayout) findViewById(R.id.form); // 1. 中断校验:按Layout的ChildView顺序校验,遇到校验失败则中断。 boolean passed = fv.testForm(form) // 1. 连续校验:按Layout的ChildView顺序校验,遇到校验失败继续,不中断。 boolean passed = fv.testFormAll(form)
如何扩展?
通过 Configuration的扩展接口,添加你自定义的校验实现类
// 1. 添加到已创建的Configuration中: conf.add(new TestRunner("出错时,此消息被返回并显示到EditText中") { @Override public boolean test(CharSequence inputValue) { // 校验通过时返回 true return inputValue.equal("AABB"); } }); // 2. 通过自定义TestRunner创建Configuration: Configuration.custom(context, new TestRunner("出错时,此消息被返回并显示到EditText中") { @Override public boolean test(CharSequence inputValue) { return false; } })https://github.com/chenyoca/android-validation