1、 配置ButterKnife
在项目目录下找到build.gradle配置文件,添加内容如下
compile 'com.jakewharton:butterknife:8.6.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
然后Sync Now同步一下就配置好了。
2、添加ButterKnife插件
找到 File -> Setting -> Plugins,在搜索框中输入“Android ButterKnife Zelezny”,安装该插件后重启Android studio。
3、代码中使用ButterKnife
在onCreate中初始化ButterKnife,然后在需要绑定的成员变量上通过BindView注解就可以绑定控件的ID,之后就可以直接使用该变量操作对应的控件了。(注意:这里在定义变量是不要定义成private或static类型,否则会报错)
public class
SplashActivity extends AppCompatActivity {
@BindView(R.id.tv_splash_title)
TextView tvSplashTitle;
@BindView(R.id.btn_splash_click)
Button btnSplashClick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
ButterKnife.bind(this); //这里一定要在SetContentView后添加
tvSplashTitle.setText("该控件已经绑定");
}
}
除了可以以View的形式绑定对应的控件,也可以通过其他标签绑定。</p>
4、各种标签
绑定View
@BindView(R.id.tv_splash_title)
TextView tvSplashTitle;
绑定事件(各种事件类型,这里只列举了三个)
@OnClick(R.id.btn_splash_click)
public void BtnClick()
{
Toast.makeText(this, "点击事件", Toast.LENGTH_SHORT).show();
}
@OnLongClick(R.id.btn_splash_click)
public boolean BtnLongClick()
{
Toast.makeText(this, "长按事件", Toast.LENGTH_SHORT).show();
return true;
} @BindArray(R.array.str1)
String[] strings;
@OnClick({R.id.btn1, R.id.btn2, R.id.btn3}) //绑定多个控件的事件
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.btn1:
Toast.makeText(this, "我是点击事件1", Toast.LENGTH_SHORT).show();
break;
case R.id.btn2:
Toast.makeText(this, "我是点击事件2", Toast.LENGTH_SHORT).show();
break;
case R.id.btn3:
Toast.makeText(this, "我是点击事件3", Toast.LENGTH_SHORT).show();
break;
}
}
绑定资源(各种资源类型等)
@BindString(R.string.app_name)
String app_name;
@BindArray(R.array.str1)
String[] strings;
@BindBitmap(R.mipmap.ic_launcher)
Bitmap bitmap;
@BindColor(R.color.colorAccent)
int color;