参考链接:Android Butterknife使用方法总结 - 简书
ButterKnife主要用于快速的绑定控件和监听相应的事件,避免原生传统的绑定步骤的繁琐,加快开发速度,减少做无用工作,采用的了注解的方式,ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。
在组件当中以及adapter都可以应用,范围很广。
配置方式:
工程下
buildscript {
repositories {
jcenter()
}
dependencies {
classpath'com.android.tools.build:gradle:2.3.3'
classpath'com.jakewharton:butterknife-gradle-plugin:8.8.1' //添加这一行
}}
app的build中添加:apply plugin:'com.jakewharton.butterknife'
dependencies中添加:
compile'com.jakewharton:butterknife:8.8.1'
annotationProcessor'com.jakewharton:butterknife-compiler:8.8.1'
使用细节:
在Activity 类中绑定 :ButterKnife.bind(this);必须在setContentView();之后绑定;且父类bind绑定后,子类不需要再bind。
在非Activity 类(eg:Fragment、ViewHold)中绑定: ButterKnife.bind(this,view);这里的this不能替换成getActivity()。
在Activity中不需要做解绑操作,在Fragment 中必须在onDestroyView()中做解绑操作。
在activity使用,绑定在Oncreate里使用mBinder=ButterKnife.bind(this),解绑在OnDestroy中使用mBinder.unbind();
在fragment使用,绑定在onCreateView里使用unbinder = ButterKnife.bind(this, view),解绑在onDestroyView()中unbinder.unbind();
在adapter中使用,在viewHolder中使用ButterKnife.bind(this, view);
可以绑定单个或多个控件,字符串,颜色,bitmap等。
绑定单个控件:
@BindView( R2.id.button)
public Button button;
绑定多个控件:
@BindViews({ R2.id.button1, R2.id.button2, R2.id.button3})
public List buttonList;//之后可以采用list相同的操作完成相关功能,如:buttonList.get(0).setText("hello 1 ");
事件绑定:
绑定点击事件:
绑定控件点击事件:@OnClick( )
绑定控件长按事件:@OnLongClick( )
例如:@OnClick(R2.id.button1 )//给 button1 设置一个点击事件
public void showToast(){}
自定义控件使用ButterKnife,直接采用注解方式。
其他绑定参考:
更加快捷的途径:ButterKnife的插件zelezny,在android studio 的plugins中直接搜索安装即可。在setContentView右键Generate可以快速完成上述的绑定,插件自动生成。