这次带来一个小小的信用卡有效期规则的Editext,额外赠送内置数字键盘的开发
首先来看下需求: 1) 月份数字: λ 数字输入0:后一位数字可输入1-9,输入1则展示01/(注意斜杠展示在界面),点击0界面没有反应 λ 数字输入1:后一位数字可输入0、1、2,输入0则展示10/(注意斜杠展示在界面),点击3-9界面没有反应 λ 数字输入2:则展示02/(注意斜杠展示在界面), λ 数字输入3-9,展示逻辑同2 2) 年份数字: λ 数字输入1、2、3,点击其他数字,界面无反应 λ 当输入数字1时: 继续输入数字6(当前年份为16年,2017年时即可输入7),则校验月份是否>=10,如果是,可以输入,如果不是,则不可输入 可继续输入数字7/8/9,0-5不可输入 λ 当输入数字2时:可继续输入数字0-9 λ 当输入数字3时:可继续输入数字0、1;也就是年份最大数字为31年(当前年份+15年,2017年时即可输入32)
这是DEMO完成时候的预览
用到项目里面也是和ok的啊,
所以我们要写一个自定义的带清除的的Editext但是,还要加入额外的判断逻辑,加入清除按钮简单就一笔带过。
自定义的Editext在构造方法中,获取系统的drawable数组,并且难道我们要设置的图片
调动这个设置drawable区域的API,把自定义的drawable显示
Editext的回调,判断显示icon的时机
由于我们添加的删除图标是一个drawable,所以我们只能重写onTouch模拟点击事件,进行清空editext文本内容的操作
判断手指抬起的时候,在UP中,用手指抬起的坐标和view的宽度-图片的宽度的坐标做个对比,如果大于这个值,说明在图片的点击区域内,那么我们清空,文本内容,其实就是给文本设置 空字符串就行了!
下面我们关键来看下那个监听里面应该如何对于上面的条件进行判断
在监听里面逐条进行判断
注释已经很详细了,下面源代码连接送上,而且有菜单,里面有一个仿iPhone的自定义数字键盘,可以屏蔽掉系统键盘的哦,赶紧下载试试吧