在用到这个recyclerview的时候发现这个条目没有点击事件,我们只能自己手动去用接口回调的方式给他设置一个点击事件
首先我们在recyclerview的适配器中写
public interface OnItemClickListener{
void onItemClick(View view,int position);
}
public interface OnItemLongClickListener{
void onItemLongClick(View view,int position);
}
private OnItemClickListener mOnItemClickListener;
private OnItemLongClickListener mOnItemLongClickListener;
public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){
this.mOnItemClickListener = mOnItemClickListener;
}
public void setOnItemLongClickListener(OnItemLongClickListener mOnItemLongClickListener) {
this.mOnItemLongClickListener = mOnItemLongClickListener;
}
然后在onbindholder方法中加
if (mOnItemClickListener != null){
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
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);
//返回true 表示消耗了事件 事件不会继续传递
return true;
}
});
}
然后在Activity中使用
xrVadapter.setOnItemClickListener(new MyXRVadapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(XRVActivity.this, "dianle", Toast.LENGTH_SHORT).show();
}
});