LoonAndroid自动检测输入框 (转)

LoonAndroid框架,同时给我们提供了一套自动检测输入规则的工具,用起来很是方便,下面介绍一下这个东东的使用方法(注意,该说明是基于项目已经集成了LoonAndroid框架而言,如果您未集成该框架,请先按照相关说明集成该框架而后方能使用):

1、Validator 验证器类

①实例化: Validator validator = new Validator(this);

②设置监听回调:validator.setValidationListener(...)

其中监听接口为:ValidationListener,他有2个需要重写实现的方法:

onValidationSucceeded()---当改验证器验证成功时回调

onValidationFailed(View failedView, Rule<?> failedRule)---当该验证器验证失败时回调(失败情况为输入形式不满足当前验证器所指定的规则)

③启动验证器进行验证---一般写在 确定 按钮里    validator.validate();

2、验证规则

我们了解了验证器类,下面介绍如何来制定我们自己的验证规则,比如,用户名输入框要求输入几位字符,要求字母+数字构成,密码输入框要求大于6位字符,注册时要求密码二次输入一致,等等这些规则,框架都为我们提供了统一的管理(统一使用注解进行验证规则设定)

①@Regex()

正则表达式注解,其中参数有:message = "第一个错误了", pattern = "[a-zA-Z0-9_]{6,15}" ,trim = true , order = 1

message为验证提示信息,pattern为正则表达式,trim为是否去除字符串俩头的空格,order为优先提示号,数值越小优先级越高

②@TextRule()

文本规则,其中参数有:message = "密码长度4到16位" , minLength = 4, trim = true, maxLength = 16 , order = 2

③@Password()

密码输入规则,其中参数有:message = "密码长度错误", minLength = 6, maxLength = 18 ,order = 1

④@ConfirmPassword()

确认密码输入规则,其中参数有:message = "两次密码输入不一致", order = 2

注意③和④对应使用

3、验证错误提示说明

我们有了验证规则和验证器,验证器使用我们自定义的验证规则去验证,当验证结果为成功的时候,我们就可以在成功的回调方法onValidationSucceeded()里面进行成功后的逻辑书写了,比如获取输入框的字符串进行登录,注册等

而当我们验证失败后,该如何进行提示呢?比如输入的不符合我们制定的必须要有字母+数字组合的规则,输入的密码2次不一致等,我们该如何通知用户他当前输入的不符合哪条规则呢?下面我们介绍一下另一个回调方法:onValidationFailed(View view, Rule<?> rule);

首先看看他的参数,View view,如果你有一定的功底,那么你可以去查看源码来熟悉,如果没有,那我可以给你讲解一下,其实改View就是当前用户输入不符合制定的规则的那个输入框,即出错的那个输入框,所有我们可以在验证失败的回调中进行如下判断:

if (view instanceof EditText) { ...... }   确定当前错误回调是因为输入框内容不符合规则而产生的

而第二个参数  Rule<?> rule,为一个抽象类,该类中有一个私有成员属性为:String mFailureMessage,且该属性在出错的时候底层进行了赋值,其值为当前出错注解上的message参数的值,所有从这也能了解到,之前注解上的message参数的作用了。而rule类提供了一个方法

public String getFailureMessage() {

return mFailureMessage;

}

所以我们可以通过   rule.getFailureMessage() 对错误参数进行提取出来

4、完整使用流程:

①、定义控件时进行如下注解:

②实例化验证器,并设置监听(设置监听时的参数为this是因为当前类已经实现了监听接口)

③点击事件中进行开始验证

④验证成功,可进行相关逻辑操作

⑤验证失败

在验证失败方法中可以进行简单的Toast提示,也可以如代码中设置Handler_TextStyle风格,然后对当前view调用setError()方法进行提示

6、最终效果如下图所示(具体美化请自行设置Handler_TextStyle风格)

时间: 2024-10-14 02:09:48

LoonAndroid自动检测输入框 (转)的相关文章

LoonAndroid自动检测输入框 --- Author: rose &amp;&amp; [email&#160;protected]

LoonAndroid框架,同时给我们提供了一套自动检测输入规则的工具,用起来很是方便,下面介绍一下这个东东的使用方法(注意,该说明是基于项目已经集成了LoonAndroid框架而言,如果您未集成该框架,请先按照相关说明集成该框架而后方能使用): 1.Validator 验证器类 ①实例化: Validator validator = new Validator(this): ②设置监听回调:validator.setValidationListener(...) 其中监听接口为:Validat

[Spring实战系列](14)Bean的自动检测

即使<context:annotation-config>有助于完全消除Spring注解中的<property>和<constructor-arg>元素,但是还是不能完全消除,仍然需要使用<bean>元素显示定义Bean.因此<context:component-scan>元素出现了,它除了完成<context:annotation-config>一样的工作,还允许Spring自动检测Bean和定义Bean.这就意味着我们不使用<

Elasticsearch 动态映射——自动检测

ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引.类型等信息,在索引的同时会自动完成索引.类型.映射的创建. 那么什么是映射呢?映射就是描述字段的类型.如何进行分析.如何进行索引等内容. 本篇就着重讲述下,ES中映射的自动检测特性. 更多内容参考:Elastisearch知识总结 字段自动检测 在某个字段第一次出现时,如果之前没有定义过映射,ES会自动检测它可能满足的类型,然后创建对应的映射. JSON数据 ES中的数据类型 null 不会添加字段 true or false

扩展一个字符自动长度自动检测的函数

/** * 扩展一个字符自动长度自动检测的函数 * @param {[type]} max [description] * @param {Function} callback [description] * @return {[type]} [description] */ jQuery.fn.maxLength = function(max, callback) { this.each(function(){ var type = this.tagName.toLowerCase(); va

Ajax实现:注册时自动检测用户名是否存在

当光标离开用户名文本框时,自动检测当前用户名是否可以用于注册 1 <tr> 2 <td width="231px" align="center" valign="top" style="height: 26px">用户名</td> 3 <td valign="top" width="357px" align="left" st

多线程.NET条码读写控件自动检测条码的方位条形码控件VintaSoftBarcode

VintaSoftBarcode.NET Library 条形码控件是一个完美的条码读写.NET 库,支持从数码图片读取条码或者生成数码图片条码. 具体功能: 支持多线程 支持创建条码图片 支持为生成的条码指定大小和分辨率 拥有许多选项控制条码创建 支持从图片对象.图片文件.和PDF文档读取条码 编程环境:.NET 框架. 这是一个可完全操纵的.NET 库,保证在.NET 框架中实现快速工作. 能够识别图片中的所有条码. 确认已识别的条码类型. 返回条码的字符串值. 自动检测条码的方位. 返回条

使用UIDataDetectorTypes自动检测电话、网址和邮箱

1.webView里如果有电话号码的话,设置这个熟悉可以点击拨打webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;//自动检测网页上的电话号码,单击可以拨打 接下来我们来简单讲一下,使用UIDataDetectorTypes自动检测电话.网址和邮箱.我们先来看看UIDataDetectorTypes有哪些枚举值. UIDataDetectorTypes的枚举值 typedef NS_OPTIONS(NSUInteger, UIDa

JavaScript实现http地址自动检测并添加URL链接

一.天生我材必有用 给http字符自动添加URL链接是比较常见的一项功能.举两个我最近常用到的自动检测http://地址并添加链接的例子吧,首先是QQ邮箱,在使用QQ邮箱时,如果输入了URL地址(http://或是https://开头),则QQ邮箱会自动给这个地址添加可打开的链接.如下图所示: 还有就是微博客产品,例如twitter(zxx://翻墙可以follow苍井空姐姐哦~~ ^_^),或是国产的新浪微博.当您的微博信息中有类似于http://www.zhangxinxu.com/的URL

Spring自动注解装配、自动检测装配Bean配合过滤组件使用

自动注解装配 当我们使用注解装配时,需要在XML文件中配置: <context:annotation-config/>那么我们就可以使用基于注解的自动装配 Spring支持几种不同的自动注解装配 [email protected] :Spring会尝试使用byType的自动装配方式 例如:  @Autowired publicPeople(Language language) { this.language =language; language.say(); } @Autowired pub