为RecyclerView的每个子item设置setOnClickListener,然后在onClick中再调用一次对外封装的接口,将这个事件传递给外面的调用者。而“为RecyclerView的每个子item设置setOnClickListener”在Adapter中设置。其实直接在onClick中也能完全处理item的点击事件,但是这样会破坏代码的逻辑。
步骤
adapter中
自定义一个继承自RecyclerView.Adapter的MyAdapter。
1.在MyAdapter中定义如下接口,模拟ListView的OnItemClickListener:
2.声明一个这个接口的变量public interface OnItemClickListener { void onItemClick(View view, int position); }
public OnItemClickListener mOnItemClickListener;
3.建MyHolder集成RecycleView.ViewHolder
class SpeedHourHolder extends RecyclerView.ViewHolder { LinearLayout speedView; ImageView speedImage; public SpeedHourHolder(View itemView) { super(itemView); } }
4.在onCreateViewHolder()中绑定holder每个view