借助ButterKnife,4行代码搞定RecyclerView中item的监听
在复习的时候突然有用黄油刀贯穿整个学习的过程,在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就可以进行随意操作。
总之就是四行代码:
绑定黄油刀,找到控件,监听控件,最后刷新。