ButterKnife官网:https://github.com/JakeWharton/butterknife
简介:ButterKnife是视图注入中相对简单易懂的很不错的开源框架
1. 强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2. 方便的处理Adapter里的ViewHolder绑定问题
3. 提高APP运行效率,使用配置方便.
4. 代码清晰,可读性强
ButterKnife使用心得:
1.ButtKnife初始化ButterKnife.bind(this)必须在加载布局资源之后(在setContentView(),Inflate等方法下面),所以ButterKnife不能在Application中初始化。
2.ButtKnife在Fragment和Adapter中使用时,初始化代码有所不同,多了个参数VIew对象.ButterKnife.bind(this, mRootView);
3.使用ButterKnife设置控件点击事件,其方法权限必须在默认权限以上方可(包括默认权限)
4.虽然使用ButterKnife很方便,但由于ButterKnife不是安卓原生的,所以使用时如果出错了,Studio报错会很奇怪,需要耐心查找。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在布局文件后,进行ButterKnife的绑定,参数上下文
ButterKnife.bind(this);
}
提示:ButterKnife的初始化必须在安卓程序加载布局文件之后,否则运行会报错。在哪使用,就在哪初始化。
@Bind(R.id.tv_butterknife)
TextView mTvButterknife;
@OnClick(R.id.tv_activity_main_translation)
void translate(TextView textView) {
textView.setText("变形成功");}
//设置点击事件,权限必须是默认权限以上且不能是静态@OnClick({R.id.cb_butterknife,R.id.tv_activity_main_goto_next_page})void onClick(View view) {
switch (view.getId()) {
//为跳转到第二个页面的TextView设置了点击事件case R.id.tv_activity_main_goto_next_page:Toast.makeText(MainActivity.this, "易大师好帅", Toast.LENGTH_SHORT).show();break;
//使复选框具备点击事件case R.id.cb_butterknife:Toast.makeText(MainActivity .this, "易大师带你装逼,带你飞", Toast.LENGTH_SHORT).show();break;
}}
ButterKnife8.0版本比7.0版本多了一些配置,改变了一些方法名,但使用的思路是一致的,具体参考这个博客:http://www.cnblogs.com/libertycode/p/5863231.html
ButterKnife8.0:http://www.apkbus.com/blog-904057-67981.html