关闭

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

285人阅读 评论(0) 收藏 举报
分类:

今天,我们继续来讲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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28900次
    • 积分:593
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:2篇
    • 译文:1篇
    • 评论:20条
    最新评论