Android Butter Knife使用说明

    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.如下图所示:

Android Butter Knife使用说明_第1张图片

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

Android Butter Knife使用说明_第2张图片

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

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

    二. 使用

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

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

Android Butter Knife使用说明_第3张图片

绑定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);就可以了,

Android Butter Knife使用说明_第4张图片

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

    3.在 ViewHolder 模式中注入

Android Butter Knife使用说明_第5张图片

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 的介绍就完毕了!相信大家已经有所了解了!(本人水平有限,有错误的地方,欢迎大家指出)







你可能感兴趣的:(android,Butter,Knife)