介绍:
用于Android Views的字段和方法的绑定,它使用注解的方式为你生成代码样板
- 通过在字段上使用@BindView来消除findViewById调用
- 将列表或数组中的多个视图分组。立即使用actions、setters或properties对它们进行操作
- 通过使用@OnClick和其他注解方法,消除监听器的匿名内部类
- 通过在字段上使用资源注解来消除资源查找
eg:
class ExampleActivity extends Activity {
@BindView(R.id.user)
EditText username;
@BindView(R.id.pass)
EditText password;
@BindString(R.string.login_error)
String loginErrorMessage;
@OnClick(R.id.submit)
void submit() {
// TODO call server...
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);
// TODO Use fields...
}
}
减少findViewById、setOnclickListener方法的编写
ButterKnife 是一个专注于Android系统的View、Resource、Action注入框架
gitHub:
https://github.com/JakeWharton/butterknife/
使用:
1、首先在你项目的主build.gradle中添加
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
}
}
2、在你项目App的build.gradle中添加
dependencies {
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
}
3、在你项目App的build.gradle中添加
apply plugin: 'com.jakewharton.butterknife'
4、最好在BaseActivity的onCreate方法中做初始化,在onDestory中取消
private Unbinder unbinder;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
unbinder = ButterKnife.bind(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
unbinder.unbind();
}
注意:
注意:要在使用Butterknife注解地方用R2替换R
eg:
class ExampleActivity extends Activity {
@BindView(R2.id.user)
EditText username;
@BindView(R2.id.pass)
EditText password;
...
}