为RecyclerView的item创建点击事件

来源:互联网 发布:棋牌透视功能软件 编辑:程序博客网 时间:2024/06/18 08:15

RecyclerView虽然很好用,但是竟然没有item的点击事件,所以我们需要自己实现,所以可以在ViewAdapter中添加点击的事件。


在我们创建的继承于RecyclerView.Adapter类中添加接口:

添加一个onItemClick方法,参数为view和position,看起来更友好,也可以根据需要自定义。

public interface OnItemClickListener {        void onItemClick(View view, int position);}

然后新建一个接口对象和一个设置方法:

private OnItemClickListener mOnItemClickListener;public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){        this.mOnItemClickListener = mOnItemClickListener;}

然后我们在onBindViewHolder方法中添加点击事件:

<span style="white-space:pre"></span>public void onBindViewHolder(final MyMusicRecyclerViewViewHolder holder, final int position) {        holder.bindItem(mRecyclerViewItems.get(position));        //添加点击事件        if(mOnItemClickListener != null) {            holder.itemView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    mOnItemClickListener.onItemClick(holder.itemView, position);                }            });        }    }
以上代码都是在Adapter中添加。


然后我们就可以通过Adapter来实现事件的响应:

<span style="white-space:pre"></span>mRecyclerViewAdapter.setOnItemClickListener(new MyMusicRecyclerViewAdapter.OnItemClickListener() {            @Override            public void onItemClick(View view, int position) {                            }       });


但是这样的实现看起来可能不美观,所以可以根据需求来添加响应的效果。

0 0