美文网首页Android UI程序员Android知识
为RecycleView添加item点击事件

为RecycleView添加item点击事件

作者: 淡日临窗 | 来源:发表于2017-04-27 16:06 被阅读299次

    和ListView不一样的是,RecyclerView不再负责Item的摆放等显示方面的功能。所有和布局、绘制等方面的工作Google都其拆分成不同的类进行管理。也因为如此RecyclerView中没有对item的点击事件,下面我们来介绍一种在RecyclerView添加Item点击事件的方法。

    在Adapter中实现

    原理:

    在ViewHolder中可以得到每个item的根布局,所以我们可以对根布局进行OnClick的监听,利用java的回调机制将这个监听公开给Adapter,这样就能够对RecyclerView设置ItemClickListener,不过这个Listener不是设置到RecyclerView上而是设置到Adapter。

    具体实现步骤:

    新建一个Adapter继承RecyclerView.Adapter<VH>,这里以MyAdapter为例:

    1. 定义一个接口:
      public interface setOnItemClickListener{
            void OnItemClickListener(int pos);
        }
    
    1. 新建一个私有变量用于保存用户设置的监听器及其set方法:
    private setOnItemClickListener mListener;
    
    1. 在View Holder中对每个Item的根布局实现监听
    if(mListener!=null){
                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        mListener.OnItemClickListener(position);
                    }
                });
            }
    
    1. 暴露一个方法供外界调用
    public void setOnItemClickListener(OnItemClickListener mListener){
            this.mListener=mListener;
        }
    
    1. 外界调用
      初始化MyAdapter后
    mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
               @Override
               public void OnItemClickListener(int pos) {
    //                TODO;
               }
           });
    

    相关文章

      网友评论

        本文标题:为RecycleView添加item点击事件

        本文链接:https://www.haomeiwen.com/subject/zeigzttx.html