版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuchenglin830/article/details/82467778
在上一篇“ButterKnife之一:Activity中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及绑定多个id监听事件)”中对ButterKnife已经做了相对较详细的介绍,本篇只对Adapter中ButterKnife使用的代码做出记录,简单记录下ButterKnife在Adapter中与在activity中的区别!
1、Adapter中使用ButterKnife注解类替代findviewbyid绑定view
使用ButterKnife绑定view:
class myViewHodler extends RecyclerView.ViewHolder {
@InjectView(R.id.item_goods_name)
TextView mGoodsName;
@InjectView(R.id.item_goods_price)
TextView mGoodsPrice;
public myViewHodler(View itemView) {
super(itemView);
ButterKnife.inject(this,itemView);
}
}
2、Adapter中使用ButterKnife注解类替代setOnclickListener点击事件(同样也可以替代listview的OnItemClick的方法以及CheckBox的OnCheckedChanged事件)
ButterKnife处理监听事件:
class myViewHodler extends RecyclerView.ViewHolder {
@InjectView(R.id.item_goods_name)
TextView mGoodsName;
@InjectView(R.id.item_goods_price)
TextView mGoodsPrice;
public myViewHodler(View itemView) {
super(itemView);
ButterKnife.inject(this,itemView);
}
@OnClick(R.id.item_goods_img)
void ImageClick(View view){//view可以省略
//处理点击事件
}
}
3、Adapter中使用ButterKnife中@OnClick可以一次指定多个id,为多个view绑定一个事件处理方法
class myViewHodler extends RecyclerView.ViewHolder {
@InjectView(R.id.item_goods_name)
TextView mGoodsName;
@InjectView(R.id.item_goods_price)
TextView mGoodsPrice;
public myViewHodler(View itemView) {
super(itemView);
ButterKnife.inject(this,itemView);
}
@OnClick({R.id.item_goods_img,R.id.item_goods_name,R.id.item_goods_price})
void mulitOnclick(View view){
Toast.makeText(this,"共同处理方法",Toast.LENGTH_SHORT).show();
}
}
注意adapter中绑定注解类,需要在viewhodler中将ButterKnife绑定到view上