为了避免每次使用Activity时都要利用findViewById一个个初始化语句,所以想利用注解来减少一些重复劳动
一、创建一个注解:
基本需要一个id即可以初始化一个View对象
/**
* Created by chen on 2016/5/20.
* @Target 设置目标为字段
* @Retention 设置作用域为运行时
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ViewId {
int id();
}
二、编写绑定组件到对象的工具类
public class BindViewUtil {
public static void bindViewByContext(Activity activity) {
try {
Class root = activity.getClass();
Field[] field = root.getDeclaredFields();
for (Field f : field) {
if (f.isAnnotationPresent(ViewId.class)) {
f.setAccessible(true);
ViewId idAnno=f.getAnnotation(ViewId.class);
f.set(activity,activity.findViewById(idAnno.id()));
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
三、使用如下
利用注解绑定id,在OnCreate方法中调用bindViewByContext方法即可