一、使用方法
一、添加依赖
1.项目的build.gradle的buildscript中配置:
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
}
}
2.module的build.gradle中应用:
apply plugin: 'com.jakewharton.butterknife'
并添加依赖:
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
如果是kotlin中使用的话,需要将annotationProcessor改为kapt。截至博客发布的时候,这是最新的版本,该版本中所有的ButterKnife注解中需要用R2代替R。
二、用法介绍
1、绑定ButterKnife
ButterKnife.bind(this);
2、常用注解
1.绑定View @BindView
@BindView(R.id.activity_butter_knife_button_2)
Button button2;
注意使用@BindView注解绑定View时成员变量不能定义为private。
2.绑定字符串资源 @BindString、@BindColor等
@BindString(R.string.test_string)
String testString;
@BindColor(R.color.colorAccent)
int testColor;
3、绑定点击事件@OnClick
@OnClick({R.id.activity_butter_knife_button_1, R.id.activity_butter_knife_button_2})
public void testDealFun(View view) {
if (view.getId() == R.id.activity_butter_knife_button_1) {
Toast.makeText(ButterKnifeTestActivity.this, "test1", Toast.LENGTH_SHORT).show();
} else if (view.getId() == R.id.activity_butter_knife_button_2) {
Toast.makeText(ButterKnifeTestActivity.this, "test2", Toast.LENGTH_SHORT).show();
}
}
3、ListView或RecyclerView当中使用ButterKnife
1.都是在adapter中的ViewHolder的构造方法中绑定ButterKnife。
ButterKnife.bind(this, itemView);
ViewHolder中控件都可以通过@BindView注解绑定。
2.外部持有该ListView或RecyclerView的地方使用@OnItemClick注解处理条目点击事件。
@OnItemClick(R.id.id_list_view)
public void itemClicked(int position) {
//...
}