Android 轻量级输入校验库:Fire Eye
Fire Eye是一款轻量级简单易用的Android校验库。
FireEye 2.0 在 1.0 的基础上,全部重写了代码,并优化了架构,性能上和逻辑上都大大提升。只需要几行代码,即可验证用户输入,并且将验证错误反馈给用户。它内置了大量常用的验证类型,足以满足你的功能需求。

Gradle 依赖
Add dependency
dependencies {
compile 'com.github.yoojia:fire-eye:2.2@aar'
}
Maven
<dependency>
<groupId>com.github.yoojia</groupId>
<artifactId>fire-eye</artifactId>
<version>2.2</version>
<type>aar</type>
</dependency>
已内置支持的校验方式
静态模式 – StaticPattern
静态模式是指对输入内容进行模式匹配,不需要额外参数即可校验的模式。如校验邮件地址是否正确等。
- Required 必填选项
- NotBlank 非空数据
- Digits 仅数字
- Email 电子邮件
- Numeric 数值
- BankCard 信用卡号/银行卡号
- Host 主机地址
- URL Http URL
- IPv4 IPv4地
- Mobile 中国的手机号码
- VehicleNumber 中国的民用车辆号牌
- IDCard 中国的身份证号(15位和18位)
数值模式 – ValuePattern
数值模式是指需要额外参数来完成对输入内容的校验过程的模式。如判断内容是否与另一个相同等。
- EqualsTo 与指定值相同
- NotEqualsTo 与指定值不相同
- RangeLength 指定长度范围
- MinLength 最小长度
- MaxLength 最大长度
- RangeValue 最值范围
- MinValue 最小值
- MaxValue 最大值
Usage – 如何使用
对表单内各个EditText绑定其校验配置
// 自定义显示出错消息的方式,默认是在 EditText 右边显示一个浮动提示框。
MessageDisplay messageDisplay = new MessageDisplay() {
@Override
public void dismiss(TextView field) {
field.setError(null);
} @Override
public void show(TextView field, String message) {
field.setError(message);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
}; // 使用表单查找器来查找输入框
View formView = findViewById(R.id.form);
Form form = new Form(formView); FireEye fireEye = new FireEye();
fireEye.add(form.byId(R.id.form_field_1), StaticPattern.Required.setMessage(R.string.tip_required), StaticPattern.Mobile);
fireEye.add(form.byId(R.id.form_field_2), StaticPattern.BankCard.setMessage("请输入您的银行卡号")); fireEye.add(form.byId(R.id.form_field_3), StaticPattern.Digits);
fireEye.add(form.byId(R.id.form_field_3), ValuePattern.MaxLength.setValue(20)); fireEye.add(form.byId(R.id.form_field_4), StaticPattern.Required, StaticPattern.Email);
fireEye.add(form.byId(R.id.form_field_5), ValuePattern.Required, ValuePattern.EqualsTo.lazy(new TextViewLoader(form.byId(R.id.form_field_4))));
fireEye.add(form.byId(R.id.form_field_6), StaticPattern.Host);
fireEye.add(form.byId(R.id.form_field_7), StaticPattern.URL);
fireEye.add(form.byId(R.id.form_field_8), ValuePattern.MaxLength.setValue(5));
fireEye.add(form.byId(R.id.form_field_9), ValuePattern.MinLength.setValue(4));
fireEye.add(form.byId(R.id.form_field_10), ValuePattern.RangeLength.setFirstValue(4L).setSecondValue(8L));
fireEye.add(form.byId(R.id.form_field_11), StaticPattern.NotBlank);
fireEye.add(form.byId(R.id.form_field_12), StaticPattern.Numeric);
fireEye.add(form.byId(R.id.form_field_13), ValuePattern.MaxValue.setValue(100));
fireEye.add(form.byId(R.id.form_field_14), ValuePattern.MinValue.setValue(20));
fireEye.add(form.byId(R.id.form_field_15), ValuePattern.RangeValue.setFirstValue(18L).setSecondValue(30L)); Result r = eye.test(); if(r.passed){
// 校验通过
}else{
// 校验失败
}
有用的接口
Debug
FireEyeEnv.isDebug = true;
设置FireEye环境变量,可以查看FireEye的校验过程及结果。
DUMP
FireEye.dump()
此方法可以输出详细的校验配置信息。其输出内容示例:
android.support.v7.internal.widget.TintEditText{42a99d60 VFED..CL .F...... 0,0-1080,118 #7f090040 app:id/form_field_1}@必填选项|手机号码:
-> patterns:
{pattern=Required, messageId=-1, message='请填写您的手机号'} ,
{pattern=Mobile, messageId=-1, message='手机号错误'}
copy : http://www.codeceo.com/article/android-fire-eye.html
Android 轻量级输入校验库:Fire Eye的更多相关文章
- [开源项目] Android校验库 - FireEye
简单易用的Android校验库. 这是一个简单Android校验库,按配置来验证用户输入的表单信息. 仅仅须要几行代码,就可以验证用户输入,而且将验证错误反馈给用户. 它内置了大量经常使用的验证类型, ...
- 59.Android开源项目及库 (转)
转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...
- Android开源项目及库搜集
TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/ ...
- Android Material Design 兼容库的使用
Android Material Design 兼容库的使用 mecury 前言:近来学习了Android Material Design 兼容库,为了把这个弄懂,才有了这篇博客,这里先推荐两篇博客: ...
- Android 开源项目及库汇总(2)
Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...
- 手把手图文并茂教你用Android Studio编译FFmpeg库并移植
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52661331 之前曾写过一篇&l ...
- 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
- 【我的Android进阶之旅】Android 如何防止 so库文件被未知应用盗用?
首先,关于Android 如何防止 so库文件被未知应用盗用这个话题并不是我擅长的,只是在开发中遇到了这个问题,因此在这里总结一下. 故事回到几个月之前,当时公司和第三方音乐平台合作了一款内置于手表系 ...
- android键盘输入读取
android键盘输入读取 监控android键盘输入方式有两种,一种在java层实现,重写onKeyDown和onKeyUp方法.另一种是在jni层实现,监控/dev/input/event0键盘 ...
随机推荐
- css3 @font-face
很长时间,web设计师总是得用一些“web-safe”字体,英文用body{font-family:"corbel", Arial, Sans-serif; }中文用body{f ...
- [转]ASP.NET MVC IOC 之AutoFac攻略
本文转自:http://www.cnblogs.com/WeiGe/p/3871451.html 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用A ...
- Android+Sqlite 实现古诗阅读应用(三)
往期传送门: Android+Sqlite 实现古诗阅读应用(一) Android+Sqlite 实现古诗阅读应用(二) 加入截图分享的功能. 很多应用都有分享的功能,我也想在我的古诗App里加入这个 ...
- [c] base64
/ * Program: * base64 encode & decode * Author: * brant-ruan * Date: * 2016-02-29 * Usage: * Enc ...
- 翻译《Writing Idiomatic Python》(五):类、上下文管理器、生成器
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
- UIPanelResetHelper(UIScrollView滚动复位)
原理 如果我们的UI中有滑动列表,并且列表比较长,那么不知道你们是否有这样需求,每次页面打开时,列表的滑动状态都恢复到默认状态. 如果要复位,其实就是修改UIPanel 的属性到初始状态.此组件做的工 ...
- lock关键字只不过是C#提供的语法糖
lock关键字只不过是C#提供的语法糖, 最终使用的还是Monitor类. Monitor类的Enter方法要求传入的参数不为null, 否则会有ArgumentNullException excep ...
- [多图]Windows 10 Build 10565今推送:优化界面菜单 Cortana改进
酷站网软:此前的Windows Build 10558并没有向公众发布,而是直到近日才向Fast Ring用户推送了更多功能和改进的Build 10565版.除之前版本上的加入了Messaging.E ...
- php发送邮件——SMTP服务器配置图文教程
准备工作: 注册一个用于网站发送邮件的QQ邮箱(或使用已有的QQ邮箱): http://zc.qq.com/chs/index.html?type=1&app_id=110 ...
- Nginx针对https站点的部署
一.Nginx安装(略)安装的时候需要注意加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块.Nginx安装方法:# ./configur ...