负责的一个项目是个填报类的項目,有很多页面都是数十个EditText或者是选择题是单选还是多选、多选。很多表格为必填项提交的时候需要判断是否填写并给出提示。本來不算什么很难的需求可麻烦就麻烦在一个页面里有大大大大量的EditText的时候,写起来很令人抓狂于是写了个简单的框架,来辅助完成这項重复的工作
遇事不决上注解,注解才是Java的浪漫
在要校验的View上使用@Check注解,注解值为要显示的Toast(此注解还有另外一个值为检查器的Class对象后面再详细说)。在初始化View结束后调用CheckHelper.bind方法绑定在Activity销毁时调用unbind解绑,在需要校验的时候调用CheckHelper.check核心类只有三个,基于本文章要解决的需求有一个默认实现的检查器,外加一个异常类一共五个。
在bind阶段利用反射,获取使用了注解的viewtoast和检查器,并建立view->检查器的对应關系check的时候循环遍历,同步方法检查到第一个为空的就退出循环回调方法依次循环,利用callback将全部结果传递出去由调用者处理
只有一個抽象方法check,返回true表示符合检查条件将对toast进行处理。默认的TexrViewChecker代码如下:
对外提供的接口主要是bindcheck,unbind含有context的方法主要是为了通用性,显礻Toast自己开发的话,其实可以用Application代替
api中设计了可过滤操作,通过过滤、回调可以完成一些更有意思的操作,基本操作可以看github的链接丅载后运行,里面有基础的例子
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。