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

2023-10-27 20:40

本文主要是介绍[开源项目] Android校验库 - FireEye,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简单易用的Android校验库。

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

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

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

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


Gradle 依赖

Add repository

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

Maven

    <dependency><groupId>com.github.chenyoca</groupId><artifactId>android-validation</artifactId><version>1.0</version><type>aar</type><scope>provided</scope></dependency>

已内置支持的校验方式

  • 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() {@Overridepublic void dismiss(EditText field) {field.setError(null);}@Overridepublic void show(EditText field, String message) {field.setError(message);Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();}};// 绑定表单Viewfinal 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中") {@Overridepublic boolean test(String inputValue) {// 校验通过时返回 truereturn inputValue.equal("AABB");}});// 加入到某个View的输入对象中:formValidator.add(passwordInput, new AbstractValidator("出错时,此消息被返回并显示到EditText中") {@Overridepublic boolean test(String inputValue) {// 校验通过时返回 truereturn 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 - 交流方式

  • Email: yoojia.chen@gmail.com
  • QQ: 228441083
  • QQ群:106904788

转载于:https://www.cnblogs.com/zsychanpin/p/6895506.html

这篇关于[开源项目] Android校验库 - FireEye的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/288259

相关文章

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式