Dhroid框架六大组件之视图注入

来源:互联网 发布:小米6淘宝指纹支付 编辑:程序博客网 时间:2024/05/16 12:23

今天,我们继续来讲dhroid的视图注入功能。通俗的讲,就是利用java的注解和反射机制,来实现注入。这样,可以使我们不用再去做大量的findViewById。那平时我们是这样子,为控件变量赋值的:

  //等同于hello = (TextView)findViewById(R.id.hello);  @InjectView(id = R.id.hello)    private TextView hello;   @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //注入当前类        InjectUtil.inject(this);    }

这里面,我们只需看的,就两行,一行是@…,另一行是注入当前类。咱们,先来看一下@InjectView这行,这个是注解,不知道的可以自行百度一下:“java 注解和反射机制”。那我这里,也重复一下这个@InjectView的原理,咱们先来看看它的源码:

@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME) public @interface InjectView {    //view 的id    public int id() default 0;      //view 的 layout    public int layout() default 0;    //view 在其他view view需要在 类中注入    public String inView() default "";    //点击事件    public String click() default "";    //长按    public String longClick() default "";    //adapterview 的单个item的点击事件    public String itemClick() default "";    //adapterview 的单个对象的长点击    public String itemLongClick() default "";}

这种叫做,自定义注解,大概就是下面这个格式:
@Target(ElementType.FIELD)//类型
@Retention(RetentionPolicy.RUNTIME) //作用范围
public @interface 注解名{//字段名}
然后,我们来看一下,另一行注入当前类代码的内部实现。

….. 这个解说先暂停,最近忙着其它工作,先发表一篇关于Android 6.0的新特性。

0 0
原创粉丝点击