RecyclerView自身并没有条目的点击事件,所以在做RecyclerView的条目点击事件时,只能自己来实现,从网上看了一种方法,感觉还不错,具体如下:
首先要在适配器中设置接口来实现RecyclerView的点击监听
private OnItemClickListener mOnItemClickListener;
private OnItemLongClickListener mOnItemLongClickListener;
public void setmOnItemClickListener(OnItemClickListener mOnItemClickListener) {
this.mOnItemClickListener = mOnItemClickListener;
}
public void setmOnItemLongClickListener(OnItemLongClickListener mOnItemLongClickListener) {
this.mOnItemLongClickListener = mOnItemLongClickListener;
}
public interface OnItemClickListener{
void onItemClick(View view, int position);
}
public interface OnItemLongClickListener{
void onItemLongClick(View view, int position);
}
然后在onBindViewHolder中判断是否设置了监听器
if(mOnItemClickListener != null){
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getLayoutPosition();
mOnItemClickListener.onItemClick(holder.itemView,position);
}
});
}
if(mOnItemLongClickListener != null){
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int position = holder.getLayoutPosition();
mOnItemLongClickListener.onItemLongClick(holder.itemView,position);
return true;
}
});
}
之后在Activity里设置监听就可以了,和ListView的监听并没什么两样。
参考资料:http://blog.csdn.net/huamnge/article/details/53691346