在复习的时候突然有用黄油刀贯穿整个学习的过程,在recyclerView练习的时候,觉得重写监听方法太麻烦,既然黄油刀可以方便的找到子控件的ID,那为何还要重写监听方法呢:
DEMO:
点击cardview后面的红色X号,条目消失
整个监听过程在adapter中实现:
1:在Holder中绑定黄油刀,找到控件
static class SongViewHolder extends RecyclerView.ViewHolder{
@BindView(R.id.card_title)
TextView titleTv;
@BindView(R.id.artistID)
TextView artistTv;
@BindView(R.id.delete)
ImageView delete_View;
public SongViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this,itemView);
}
}
2:在适配器中的onBindViewHolder中进行监听,这个方法提供了holder和position两个参数,有了position,干嘛要写一大堆啰嗦的东西,围绕position开展监听不就OJBK了么?
如下:
@Override
public void onBindViewHolder(SongViewHolder holder, final int position) {
holder.titleTv.setText((mobj.get(position)).getTitle());
holder.artistTv.setText((mobj.get(position)).getArtist());
holder.delete_View.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mobj.remove((mobj.get(position)));
notifyDataSetChanged();
}
});
}
mobj是数据源,也就是一个list集合,包装着数据对象,围绕position就可以进行随意操作。
总之就是四行代码:
绑定黄油刀,找到控件,监听控件,最后刷新。