美文网首页
AS-插件,Butterknife

AS-插件,Butterknife

作者: whstywh | 来源:发表于2016-12-12 15:36 被阅读0次
Photo by Damian Zaleski on Unsplash

工欲善其事必先利其器

下载插件

File -> Settings -> Plugins -> 搜索ButterKnife,找到Android ButterKnife Zeleany进行安装重启

使用插件

选中 activity_main 布局文件,alt+insert 快捷键选择 Generate ButterKnife injections


添加依赖

本文以Butterknife 8.5.1 版本为例:
1.在项目的build.gredle 文件中的dependencies下添加

    classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'

2.在module的build.gredle 文件中添加

    apply plugin: 'com.jakewharton.butterknife'

3.在module的build.gredle 文件中的dependencies标签中添加

    compile 'com.jakewharton:butterknife:8.5.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

如何使用

1.Activity中使用

//一个控件的绑定
// 注意:button 的修饰类型不能是:private 或者 static 
//否则会报错:错误: @BindView fields must not be private or static. 
 @BindView( R.id.button1 )
 public Button button1 ;
//多个控件的绑定
@BindViews({ R.id.button1 , R.id.button2 , R.id.button3 }) 
public List<Button> buttonList ;
//绑定string 字符串 
@BindString( R.string.app_name ) 
String meg;
//绑定string里面array数组 
@BindArray(R.array.city ) 
String [] citys ;
//
<resources>
<string-array name="city"> 
         <item>厦门市</item> 
         <item>福州市</item>
         <item>泉州市</item>
         <item>漳州市</item> 
         <item>龙岩市</item> 
</string-array> 
</resources>
//绑定Bitmap 资源 
@BindBitmap( R.mipmap.bitmap )
public Bitmap bitmap ;
//绑定一个颜色值
@BindColor( R.color.colorAccent ) 
int black ;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_butterknife);

         //绑定activity 
         ButterKnife.bind( this ) ;
         button.setText( "button ");
 }

2.fragment中使用

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
         View view = inflater.inflate(R.layout.fragment_butterknife, container, false);

         //绑定fragment
         ButterKnife.bind( this , view ) ; 
         button.setText( "button ");
         return view ; 
}

3.Adapter中使用

static class ViewHolder {
         @InjectView(R.id.person_name) 
         TextView name; 
     public ViewHolder(View view) { 
         ButterKnife.inject(this, view);
     } 
}

4.点击事件

//给 button设置一个点击事件 
@OnClick(R.id.button )
public void showToast1(){ 
         Toast.makeText(this, "is a click", Toast.LENGTH_SHORT).show();
 }

//给 button 设置一个长按事件 
@OnLongClick( R.id.button ) 
public boolean showToast2(){ 
         Toast.makeText(this, "is a long click", Toast.LENGTH_SHORT).show(); 
         return true ; 
}

相关文章

网友评论

      本文标题:AS-插件,Butterknife

      本文链接:https://www.haomeiwen.com/subject/vrmmmttx.html