类校验错误 android,[开源项目] Android校验库

简单易用的Android校验库。

这是一个简单Android校验库,按配置来验证用户输入的表单信息。

仅仅须要几行代码,就可以验证用户输入,而且将验证错误反馈给用户。

它内置了大量经常使用的验证类型,足以满足你的功能需求。

它另一个可扩展的验证选项。你能够通过扩展接口加入你须要的验证方式。

Center

Gradle

依赖

Add repository

dependencies {

compile 'com.github.chenyoca:android-validation:1.0@aar'

}

Maven

com.github.chenyocaandroid-validation1.0aarprovided

已内置支持的校验方式

Required 必填选项

NotBlank 非空数据

Digits 仅数字

IsDate 是否为有效日期

IsTime 是否为有效时间

IsDateTime 是否为有效的日期和时间

IsFuture 是否为当前时间之后的日期和时间

IsPast 是否为当前时间之前的日期和时间

Email 电子邮件

EqualTo 与指定值同样

Host 主机地址

URL Http URL

IPv4 IPv4地

RangeLength 指定长度范围

MinLength 最小长度

MaxLength 最大长度

Numeric 数值

CreditCard 信用卡号

RangeValue 最值范围

MinValue 最小值

MaxValue 最大值

MobilePhone 中国的手机号码

How

to usage - 怎样使用

通过 View ID 来绑定校验配置信息

对表单内各个EditText绑定其校验配置

// 自己定义显示出错消息的方式,默认是在 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中

如“最大长度”、“邮件地址”等校验条件。能够将EditText的输入类型自己主动切换至对应类型。

获取Form中被校验EditText的值

String username = validator.getValue(R.id.form_field_1);

获取Form中没有被校验EditText的值

String username = validator.getExtraValue(R.id.form_field_others);

获取Form中被校验EditText的对象

EditText username = validator.getView(R.id.form_field_1,EditText.class);

Contact

- 交流方式

QQ: 228441083

QQ群:106904788

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值