butterKnife的使用
1. 导入包,本人用的是最新版本的
dependencies {
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}
2. 在Fragment中绑定视图且实现控件的监听
在Activity中绑定视图使用: BufferKnife.bind(this);
public class MainFragment extends Fragment {
@BindView(R.id.one)
ImageView one;
@Nullable
@BindView(R.id.two)
RelativeLayout two;
private Unbinder unbinder;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
// 绑定视图
unbinder = ButterKnife.bind(this, view);
return view;
}
@Override
public void onDestroy() {
super.onDestroy();
// 解除绑定
unbinder.unbind();
}
// 实现控件的监听,使用@OnClick注解
@Optional
@OnClick({R.id.one, R.id.two})
public void onClick(View view) {
switch (view.getId()) {
case R.id.one:
break;
case R.id.two:
break;
}
}
}
3. 在ViewHolder中,使用butterKnife,并且实现对控件的点击事件的监听
static class ViewHolder implements View.OnClickListener {
LinearLayout one;
ImageView two;
public ViewHolder(View view) {
this.one= ButterKnife.findById(view, R.id.one); // 无需强转
this.two= ButterKnife.findById(view,R.id.two);
this.one.setOnClickListener(this);
view.setTag(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.one:
break;
}
}
}