1,定义一个接口
public interface OnRecyclerViewItemClickListener {
void onItemClick(int position);
}
2,在MyAdapter创建引用
private OnRecyclerViewItemClickListener onItemClickListener;
3,adapter的对外接口
public void setOnItemClickListener(OnRecyclerViewItemClickListener onItemClickListener){
this.onItemClickListener = onItemClickListener;
}
4,在onBindViewHolder里面给view设置点击事件
@Override
public void onBindViewHolder(CommorateView holder, int position) {
holder.setOnItemClickListener(onItemClickListener);
holder.itemView.setTag(position);
}
因为上面是在itemview设置的点击时间,那么就需要在recycler.view中设置点击事件
1,在recycler.view 中设置引用
OnRecyclerViewItemClickListener onItemClickListener;
2,设置提供给recycler.adapter调用的方法
public void setOnItemClickListener(OnRecyclerViewItemClickListener onItemClickListener){
this.onItemClickListener = onItemClickListener;
}
3,在recycler.view构造函数中设置点击事件
public ItemView(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
}
4,实现onclick
@Override
public void onClick(View v) {
if(onItemClickListener != null){
int position = (int) v.getTag();
onItemClickListener.onItemClick(position);
}
}