前言
以前我们会在代码中写很多findViewById以及setOnClickListener等代码,不仅写起来麻烦,看起来也不整洁。现在我们用View注入框架ButterKnife就能解决这些问题。
ButterKnife的github地址:https://github.com/JakeWharton/butterknife
一、添加依赖
(1)在项目的的build.gredle 文件中的dependencies标签内添加如下:
classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
如图所示:
(2)在Module的的build.gredle 文件中的最上面添加如下:
apply plugin: 'com.jakewharton.butterknife'
(3)在Module的的build.gredle 文件中的dependencies标签内添加如下:
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
如图所示:
二、使用
例如在布局文件中我们有个控件tv_text需要绑定
<TextView
android:id="@+id/tv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
则我们需要在代码中添加如下代码
(1)绑定activity
ButterKnife.bind(this);
(2)绑定控件id
@BindView(R.id.tv_text)
TextView mTvText;
(3)使用该控件,如下图所示
如果是绑定fragment,则添加如下代码
ButterKnife.bind(this, view);
如果是绑定RecyclerView的item,则在ViewHolder中添加如下代码
public class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.tv_day)
TextView mTvDay;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
三、配合Butterknife插件使用更简单
让我们写上面的代码还是比较麻烦的,高手都是用插件的。使用步骤如下:
插件的安装:
(1)在settings中搜索插件Zelezny
(2)点击安装,安装后需要重启android studio
插件的使用:
(1)选中布局文件,点击右键,选择Generate->Generate Butterknife Injections->Confirm,如图:
(2)点击Confirm后,会自动生成BindView等代码:
OK,Butterknife使用就到这里结束。