【Android框架进阶〖0〗】ThinkAndroid注解机制
由于项目需要,开始研究ThinkAndroid。
个人认为该框架的注解机制十分新颖,所以先研究这个,顺便学习下 Java 的annotation。
粗略的看了看,该机制在BaseActivity中初始化。而BaseActivity是所有Activity的基类。
对BaseActivity进行了代码剖离,发现在BaseActivity中在onCreate函数里启动注解机制。
首先注入布局资源(绑定layout布局)其次注入成员资源(绑定组件资源)然后注入成员变量(初始化普通变量)暂时先搞清楚第二个,怎么绑定组件资源的:
我写了个小demo,MyAnno

InjectView.java
即注入成功了
需要说下我遇到的问题,在以上的基础上,如果将布局文件里的TextView 和ImageView两个布局换个位置,这时候再运行下,会出现空指针异常。
将Log向上翻会发现一个警告
即非法参数异常
定位到这一行
发现第一二行是对的,即获得注解的类型和ID(ImageView 2131230720)都是正确的,但是通过findViewById获取view的时候,Log第三行显示的却是TextView。
百思不得其解,最后无赖之下,清理一下项目,搞定。
我不知道是怎么回事,暂且推测为资源缓存吧。
转载请注明出处!