首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

【Android框架进阶〖零〗】ThinkAndroid注解机制

2013-10-30 
【Android框架进阶〖0〗】ThinkAndroid注解机制由于项目需要,开始研究ThinkAndroid。个人认为该框架的注解机制

【Android框架进阶〖0〗】ThinkAndroid注解机制

由于项目需要,开始研究ThinkAndroid。

个人认为该框架的注解机制十分新颖,所以先研究这个,顺便学习下 Java 的annotation。

粗略的看了看,该机制在BaseActivity中初始化。而BaseActivity是所有Activity的基类。

对BaseActivity进行了代码剖离,发现在BaseActivity中在onCreate函数里启动注解机制。

首先注入布局资源(绑定layout布局)其次注入成员资源(绑定组件资源)然后注入成员变量(初始化普通变量)

暂时先搞清楚第二个,怎么绑定组件资源的:

我写了个小demo,MyAnno

【Android框架进阶〖零〗】ThinkAndroid注解机制【Android框架进阶〖零〗】ThinkAndroid注解机制

InjectView.java


即注入成功了 【Android框架进阶〖零〗】ThinkAndroid注解机制


需要说下我遇到的问题,在以上的基础上,如果将布局文件里的TextView 和ImageView两个布局换个位置,这时候再运行下,会出现空指针异常。

将Log向上翻会发现一个警告

【Android框架进阶〖零〗】ThinkAndroid注解机制【Android框架进阶〖零〗】ThinkAndroid注解机制

即非法参数异常

定位到这一行

【Android框架进阶〖零〗】ThinkAndroid注解机制

发现第一二行是对的,即获得注解的类型和ID(ImageView 2131230720)都是正确的,但是通过findViewById获取view的时候,Log第三行显示的却是TextView。

百思不得其解,最后无赖之下,清理一下项目,搞定。

我不知道是怎么回事,暂且推测为资源缓存吧。


转载请注明出处!


热点排行
Bad Request.