借助ButterKnife,4行代码搞定RecyclerView中item的监听

在复习的时候突然有用黄油刀贯穿整个学习的过程,在recyclerView练习的时候,觉得重写监听方法太麻烦,既然黄油刀可以方便的找到子控件的ID,那为何还要重写监听方法呢:

DEMO:


借助ButterKnife,4行代码搞定RecyclerView中item的监听

点击cardview后面的红色X号,条目消失

借助ButterKnife,4行代码搞定RecyclerView中item的监听

整个监听过程在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就可以进行随意操作。

总之就是四行代码:

绑定黄油刀,找到控件,监听控件,最后刷新。