RecyclerView的条目监听事件

来源:互联网 发布:药品进销存软件 编辑:程序博客网 时间:2024/05/21 20:58

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){            //为ItemView设置监听器            holder.itemView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    int position = holder.getLayoutPosition(); // 1                    mOnItemClickListener.onItemClick(holder.itemView,position); // 2                }            });        }        //长按判断        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里设置监听就可以了,和ListView的监听并没什么两样。

参考资料:http://blog.csdn.net/huamnge/article/details/53691346

0 0
原创粉丝点击