Android开发的一些收获

Android格式的验证可以使用Android Validation
1. 方式一:对单个EditText进行校验
2. 方式二:对整个Layout内的EditText全部校验

已经内置支持的校验方式

  • Required(必填)
  • NotBlank(非空数据)
  • Digits(仅数字)
  • Date(日期)
  • Email(电子邮件)
  • EqualTo(与指定值长度相同)
  • Host(主机地址)
  • HTTPURL(HTTPURL)
  • iPV4(IPV4地址)
  • LengthInRange(指定范围长度)
  • LengthInMin(最小长度)
  • LengthInMax(最大长度)
  • Numeric(数值)
  • CreditCard(信用卡号)
  • ValueInRange(最值范围)
  • ValueInMin(最小值)
  • ValueInMax(最大值)
  • ChineseMobilePhone(中国的手机号)

如何使用

方式一:对单个EditText进行校验

  • 构建校验配置
Configuration conf = Configuration.buildIn(context, BuildInTypes.Required, "必填选项!");
conf.add(BuildInTypes.LengthInMax, 20);
conf.add(BuildInTypes.Email);
  • 对EditText执行校验
EditText edittext = (EditText) findViewById(R.id.single_test);
ResultWrapper result = FormValidator.testField(edittext, conf); 

方式二:对整个Layout内的EditText全部校验
通过ViewID来绑定校验配置信息
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);
  1. 对表单内执行校验
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;
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值