Butter Knife已经出现好久了,最近在项目开发中,为了方便就开始使用这个注解框架,感觉还是不错的!是时候了解这个框架了!是JakeWharton大牛的出品!

官网: http://jakewharton.github.io/butterknife/

GitHub地址:https://github.com/JakeWharton/butterknife

JavaDocs地址: http://jakewharton.github.io/butterknife/javadoc/

最新的版本已经更新到了V7.0.1。首先去下载最新的jar包吧!提供一个下载连接

一. 使用配置

如果你还是eclipse平台上开发,那么就需要先在eclipse中配置一下,具体操作如下:

(1).将下载的jar包复制到libs目录下;

(2).项目右键-->Properties-->Java Compiler-->Annotation Processing,在右侧区域勾选Enable project specific settings.如下图所示:


(3).选择Annotation Processing下面的Factory Path,在右侧选择AddJARs。找出项目libs下的butterknife.jar点击Apply,OK。如图所示:


经过上面3补,Butter Knife已经在Eclipse中配置完毕,就可以正常使用了!

如果你使用的是Android Studio,那么配置就很简单,导入了butterknife的jar(或者在build.gradle中已经加入:compile'com.jakewharton:butterknife:7.0.1 ')。

二. 使用

接下来,我们就看看在代码里面具体是怎么使用的。

1.在Activity中,我们需要在onCreate()中调用ButterKnife.bind(this);就可以使用了,


绑定id就可以这么写

@Bind(R.id.tv1) TextView tv1;   @Bind(R.id.btn1) Button btn1;
事件监听,例如OnClickListener,就可以这么写

@OnClick(R.id.btn1) public void btnOnclick(){Toast.makeText(this, "你点击了按钮", Toast.LENGTH_LONG).show();}
2.在 Fragment中onCreateView()方法中,调用ButterKnife.bind(this, view);就可以了,


其他的和在Activity中一样,没有区别。

3.在 ViewHolder 模式中注入


static class ViewHolder {    @Bind(R.id.tv1) TextView tv1;    @Bind(R.id.tv2) TextView tv2;     public ViewHolder(View view) {    ButterKnife.bind(this, view);    }  }
4.事件注入

//不带参数@OnClick(R.id.btn1) public void btnOnclick(){}//带参数@OnClick(R.id.btn1)public void btnOnclick(View view){}//多个view注入同一事件@OnClick({R.id.btn1,R.id.btn2,R.id.btn3})public void onclick(){}
三.混淆

如果你代码混淆,那么就需要添加如下代码

-keep class butterknife.** { *; }   -dontwarn butterknife.internal.**   -keep class **$$ViewBinder { *; }   -keepclasseswithmembernames class * {    @butterknife.* <fields>;   }   -keepclasseswithmembernames class * {    @butterknife.* <methods>;   }
至此, Butter Knife 的介绍就完毕了!相信大家已经有所了解了!(本人水平有限,有错误的地方,欢迎大家指出)







更多相关文章

  1. Android中触摸事件MotionEvent的来源
  2. Android:实现Button点击事件的四种方式
  3. Android(安卓)xml中配置数组资源,在java中调用该数组资源
  4. 使用idea写android应用时,配置错误问题
  5. Kotlen_DataBinding_配置
  6. Android(安卓)PopupWindow GridView onItemClick无效
  7. android事件4-onTouchEvent, onClick及onLongClick的调用机制
  8. mac android ndk第一步
  9. [填坑系列]Android(安卓)Studio 3.0配置更改

随机推荐

  1. Android签名机制之---签名过程详解
  2. [Java][Android][Process] Process 创建+
  3. 【Android】Android系统启动过程
  4. 打好Android基础,实战中运用基础
  5. iOS设备蓝牙类库的选择
  6. 如何将音视频发布到移动设备,android,ios,ip
  7. 记一次(IDA+实机)附加调试Android原生库过
  8. Android面试系列之一
  9. 【Android】解决使用Dialog + EdiText 实
  10. 产品中,不明白与思考