ButterKnife注解式绑定控件

Butter Knife Android为控件设计的注解绑定库。

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

添加依赖:(具体看github官网)

dependencies {
  implementation 'com.jakewharton:butterknife:9.0.0-rc2'
  annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2' }
注意:·修饰类型不能是:private 或者 static;

   ButterKnife.bind(this);必须在setContentView();之后绑定;且父类bind绑定后,子类不需要再bind。

   在非Activity中,this不能替换成getActivity()。

   在Activity中不需要做解绑操作,在Fragment 中必须在onDestroyView()中做解绑操作。

·//绑定activity
ButterKnife.bind(this);

·//绑定fragment
ButterKnife.bind( this , view ) ;
·//解除绑定
ButterKnife.unbind(this);
·//多个控件id 注解
@BindViews({ R.id.button1 , R.id.button2 , R.id.button3 }public List<Button> buttonList ;

·//绑定string 字符串
@BindString( R.string.app_name )  public String str;
·//绑定string里面array数组
@BindArray(R.array.city );
·//绑定Bitmap 资源
@BindBitmap( R.mipmap.wifi )
·//绑定一个颜色值
@BindColor( R.color.colorAccent )
·//设置一个点击事件
@OnClick(R.id.button1 )
·//设置一个长按事件
@OnLongClick(R.id.button1)

 在Adapter的ViewHolder中使用,将ViewHolder加一个构造方法,在new ViewHolder的时候把view传递进去。使用ButterKnife.bind(this, view)进行绑定,代码如下:
public class MyAdapter extends BaseAdapter {  

  @Override   
  public View getView(int position, View view, ViewGroup parent) {  
    ViewHolder holder;  
    if (view != null) {  
      holder = (ViewHolder) view.getTag();  
    } else {  
      view = inflater.inflate(R.layout.testlayout, parent, false);  
      holder = new ViewHolder(view);  
      view.setTag(holder);  
    }  

    holder.name.setText("Donkor");  
    holder.job.setText("Android");
    // etc...  
    return view;  
  }  

  static class ViewHolder {  
    @BindView(R.id.title) TextView name;  
    @BindView(R.id.job) TextView job;  

    public ViewHolder(View view) {  
      ButterKnife.bind(this, view);  
    }  
  }  
}

 

转载于:https://www.cnblogs.com/leizz/p/10117973.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值