美文网首页
依赖注入框架 Butterknife的使用,告别findView

依赖注入框架 Butterknife的使用,告别findView

作者: Wang_Yi | 来源:发表于2016-09-23 13:37 被阅读468次

    Butterknife 是Jake Wharton开发的一个依赖注入框架,
    Github地址:https://github.com/JakeWharton/butterknife

    使用该框架能为我们省去大量的代码,比如最常见的findViewById 这样的代码,如果一个类中有大量的View,那么按照常见的写法就会每个view写上一行findViewById。
    Butterknife不仅能让我们偷懒少些许多代码,而且其使用了注解处理器,我们编译的时候,ButterKnifeProcessor 类的 process() 方法便会执行,搜索到所有的 ButterKnife 注解(@BindView),然后生成一个 Java 类。所以运行时和我们使用findViewById相比性能并不会有啥影响。
    Butterknife目前最新是8.4.0版本,AndroidStudio导入方式参考官方github。
    在Activity或者Dialog中:
    首先在Activity的onCreate方法 或者Dialog的初始化方法中绑定直接绑定this:
    ButterKnife.bind(this);
    当然我们的不只是在Activity中才需要初始化View,在其他地方初始化也很简单,传入一个所有View的根View。
    ButterKnife.bind(view);

    下面是常见的一些使用场景:

    1. 绑定一个View (View不能为private 或者static):
    @BindView(R.id.imageView)
    ImageView imageView;
    
    1. 给一个View添加点击事件:
    @OnClick(R.id.imageView)
    public void onImageView() {
            Toast.makeText(this, "onImageClick", Toast.LENGTH_SHORT).show();
    }
    
    1. 给多个View添加点击事件:
    @OnClick({R.id.imageView, R.id.textView})
    @Override
    public void onClick(View v) {
            Toast.makeText(this, v.getClass().getSimpleName() + ":onClick", Toast.LENGTH_SHORT).show();
    }
    
    1. 给ListView setItemClickListener:
    @OnItemClick(R.id.listView)
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {
            Toast.makeText(this, "onItemClick" + position, Toast.LENGTH_SHORT).show();
    }
    

    通常我们为一个View设置的各种监听回调,比如
    OnCheckedChanged
    OnEditorAction
    OnFocusChange
    OnLongClick
    OnItemSelected
    OnPageChange
    OnTouch
    OnTextChanged
    Butterknife 都能够通过一行简单的注解帮我们实现,使用方法也很简单,确实能让我们少些很多代码,真是一个偷懒神器。

    相关文章

      网友评论

          本文标题:依赖注入框架 Butterknife的使用,告别findView

          本文链接:https://www.haomeiwen.com/subject/mnutyttx.html