ButterKnife的集成和使用

来源:互联网 发布:工业控制网络 编辑:程序博客网 时间:2024/06/06 17:56

ButterKnife的集成和使用


[项目地址]https://github.com/JakeWharton/butterknife

使用记录
1.集成

dependencies {    compile 'com.jakewharton:butterknife:8.8.1'    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1}

2.使用

public class MainActivity extends Activity {    // 绑定view的修饰类型不能是:private 或者 static 。不然的话会报错,想知道什么错误自已试一试!    //绑定单个view    @BindView(R.id.iv_img)    ImageView ivImg;    //绑定多个view    @BindViews({R.id.tv_1, R.id.tv_2, R.id.tv_3})    List<TextView> tvList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //绑定activity        ButterKnife.bind(this);        //给图片设置一张网络图片        Glide.with(this)                .load("http://pic34.photophoto.cn/20150308/0017030549871516_b.jpg")                .transform(new CircleCrop(this))                .into(ivImg);        tvList.get(0).setText("我是第一个");        tvList.get(1).setText("我是第二个");        tvList.get(2).setText("我是第三个");    }    //设置单个控件点击事件    @OnClick(R.id.iv_img)    public void OnClick(View view) {        Toast.makeText(MainActivity.this, "点一下爽一爽", Toast.LENGTH_SHORT).show();    }    //设置长按事件    @OnLongClick(R.id.iv_img)    public boolean OnLongClick() {        Toast.makeText(MainActivity.this, "长按会更爽", Toast.LENGTH_SHORT).show();        return true;    }    //多个控件一起设置点击事件    @OnClick({R.id.tv_1, R.id.tv_2, R.id.tv_3})    public void OnMoreClick(View view) {        switch (view.getId()) {            case R.id.tv_1:                Toast.makeText(MainActivity.this, "爽", Toast.LENGTH_SHORT).show();                break;            case R.id.tv_2:                Toast.makeText(MainActivity.this, "到", Toast.LENGTH_SHORT).show();                break;            case R.id.tv_3:                Toast.makeText(MainActivity.this, "爆", Toast.LENGTH_SHORT).show();                break;        }    }}

ButterKnife不紧可以用来绑定view也可以绑定string、color、bitmap类型,具体使用方法可以看看GitHub。


在fragment中使用ButterKnife何在Activity的区别是ButterKnife.bind(this);变成ButterKnife.bind(this,view);这样就可以了