在上一篇“ButterKnife之一:Activity中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及绑定多个id监听事件)”中对ButterKnife已经做了相对较详细的介绍,本篇只对Fragment 中ButterKnife使用的代码做出记录,简单记录下ButterKnife在fragment中与在activity中的区别!
1、Fragment 中使用ButterKnife注解类替代findviewbyid绑定view
使用ButterKnife绑定view:
@InjectView(R.id.item_goods_name)
TextView mGoodsName;
@InjectView(R.id.item_goods_price)
TextView mGoodsPrice;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.goods_page, container, false);
ButterKnife.inject(this,view);
return view;
}
2、Fragment 中使用ButterKnife注解类替代setOnclickListener点击事件(同样也可以替代listview的OnItemClick的方法以及CheckBox的OnCheckedChanged事件)
ButterKnife处理监听事件:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.goods_page, container, false);
ButterKnife.inject(this,view);
return view;
}
@OnClick(R.id.item_goods_img)
void ImageClick(View view){//view可以省略
//处理点击事件
}
3、Fragment 中使用ButterKnife中@OnClick可以一次指定多个id,为多个view绑定一个事件处理方法
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.goods_page, container, false);
ButterKnife.inject(this,view);
return view;
}
@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();
}
注意ButterKnife绑定绑定的方式,比activity中多了一个view参数