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的更多相关文章

  1. [开源项目] Android校验库 - FireEye

    简单易用的Android校验库. 这是一个简单Android校验库,按配置来验证用户输入的表单信息. 仅仅须要几行代码,就可以验证用户输入,而且将验证错误反馈给用户. 它内置了大量经常使用的验证类型, ...

  2. 59.Android开源项目及库 (转)

    转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...

  3. Android开源项目及库搜集

    TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/ ...

  4. Android Material Design 兼容库的使用

    Android Material Design 兼容库的使用 mecury 前言:近来学习了Android Material Design 兼容库,为了把这个弄懂,才有了这篇博客,这里先推荐两篇博客: ...

  5. Android 开源项目及库汇总(2)

    Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...

  6. 手把手图文并茂教你用Android Studio编译FFmpeg库并移植

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52661331 之前曾写过一篇&l ...

  7. 最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版

    ===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...

  8. 【我的Android进阶之旅】Android 如何防止 so库文件被未知应用盗用?

    首先,关于Android 如何防止 so库文件被未知应用盗用这个话题并不是我擅长的,只是在开发中遇到了这个问题,因此在这里总结一下. 故事回到几个月之前,当时公司和第三方音乐平台合作了一款内置于手表系 ...

  9. android键盘输入读取

    android键盘输入读取  监控android键盘输入方式有两种,一种在java层实现,重写onKeyDown和onKeyUp方法.另一种是在jni层实现,监控/dev/input/event0键盘 ...

随机推荐

  1. Unity3d Asset Server启动问题

    周末机房停电后asset server无法启动,点击启动出现“asset server could not start server”. 几经周折,找到原来是用户问题,解决办法如下: 1.命令行输入“ ...

  2. [引] Security tips for web developers

    Source :Security tips for web developers

  3. unix automake 使用,快速生成你的Makefile

    使用automake快速生成编译的Makefile 1,确保自己装有的软件automake autoconf 2, 1)执行autoscan 并将生成的configure.scan重命名为config ...

  4. Codeforces Round #282 Div.1 B Obsessive String --DP

    题意: 给两个串S,T,问能找出多少的S的(a1,b1)(a2,b2)..(ak,bk),使Sa1---Sb1,...Sak---Sbk都包含子串T,其中k>=1,且(a1,b1)...(ak, ...

  5. AC日记——求10000以内n的阶乘 openjudge 1.6 14

    14:求10000以内n的阶乘 总时间限制:  5000ms 内存限制:  655360kB 描述 求10000以内n的阶乘. 输入 只有一行输入,整数n(0<=n<=10000). 输出 ...

  6. luogu10125回文数[noip1999 Day1 T1]

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  7. jquery的ready方法(DOM是否加载完)详解与使用

    jquery的ready方法(准备DOM触发)还是比较复杂的,我们先看流程图:

  8. python中的字符串操作

    #!/usr/bin/python # -*- coding: UTF-8 -*- ''' str.capitalize() ''' str = 'this is a string example' ...

  9. Java GC回收机制

    优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ...

  10. 002商城项目:maven工程的测试以及svn的使用

    我们上一篇文章搭建了maven工程,这一篇文章我们就要测试这个工程. 1: 由于这个工程还没有页面,我们要首先建立一个页面.在建立页面的jsp的过程中,我发现了一个问题,我这个eclipse由于缺少J ...