阅读KJFrameAndroid--各种基类和控件注入

来源:互联网 发布:荣耀盒子 软件安装 编辑:程序博客网 时间:2024/06/06 02:35

         传说KJFrame不错 我也加入他们的群了,下载了一个Demo下来当然还有源代码,打开源代码一看惊呆了,满满的中文注释,这种感觉 恩 我形容一下就像你一直欣赏岛国爱情动作片的时候,突然看见一部全程中文发音的。 震撼的无以复加啊....

         废话不多说,看了一下,先从KJFrameActivity 开始阅读

注意到KJFrameActivity是一个抽象类,也就是说后面它实现的各种接口可以不去具体实现的这里去实现OnclickListener很奇怪,先不管它,看其他接口

通过上面的代码可以大致知道KFrameActivity拥有如下功能 1)规范广播的发送和销毁 2)规范acitivty的各种跳转 3)规范数据,控件的初始化流程 读一下oncreate方法,setRootView方法用于子类设定显卡的界面,AnnotateUtil.initBindView(this),利用反射获取传人context的属性以及上面的注解后,实例化控件为控件绑定点击监听,这个后面来说。initialize()用于初始化数据和控件,registerBroadcast()注册广播,子类要注册什么样子的广播自己实现

这里记录AnnotateUtil注解工具类的,的阅读心得

这个initBindView是核心方法,大致说一下这个方法的意思,根据传传入class对象,得到改class对象的Field列表(反射),遍历每一个Field查找是否有BindView注解,如果有BindView注解那个实例化该Field,如果注解中click值为true则为该Field(控件如button)绑定点击监听器。 1)field.setAccessible(true); 这行代码绝对不是 “将属性变成什么public可访问的意思”,反射的过程中其实是需要验证的,这行代码的意思是说在反射获取这个属性的时候不需要进行验证,那么不进行验证自然效果会得到提高,so 这行代码是提高效率的 2)setOnclickListener这里 之前看到KJFrameAcitvity实现了OnclickListener接口的当时不知道用何用,到这里很清楚目的就是为了反射的时候设置绑定监听用
0 0