Android UI程序员Android知识

为RecycleView添加item点击事件

2017-04-27  本文已影响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;
           }
       });
上一篇下一篇

猜你喜欢

热点阅读