使用接口回调的方法为Recycleview 的item 添加点击监听事件

Recycleview是一款很强大的控件,但是使用过的同学可能会发现它并没有自带的点击事件,如果想要给item添加点击事件要怎么做呢,其实可以用接口回调的方法去完成。

一、首先定义一个接口的方法

我们可以直接以内部类的形式在Adapter 中实现,也可以单独定义一个接口类

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

二、在adapter中初始化接口

private OnItemClickListener mOnItemClickListener;

三、在onBindViewHolder中将item点击事件接口传递进去,让接口方法去处理点击事件的逻辑

   public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
                 holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if (mOnItemClickListener != null) {                      
                           mOnItemClickListener.onItemClick(v, position);
                        }
                    }
                });

这样的话点击item实际上调用的接口的方法,具体接口方法需要做什么操作逻辑就在调用的时候去写了

四、定义一个接口回调的方法给外部调用
1、这里面常用的写法有写一个带参数的set 方法将第二步定义的接口对象传递进去

public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        mOnItemClickListener = onItemClickListener;
    }


然后在acitvity 中通过adapter 的对象去回调
adapter.setOnItemClickListener(new OnItemClickListener)

2、或者将OnItemClickListener 接口对象传到adapter的构造函数中去,这样只要实例化adapter对象就会回调了。

public RecycleviewAdapter(Context context, List<RecycleViewItemCategory> list,OnItemClickListener onItemClickListener) {
        this.context = context;
        this.datalist = list;
        this.mOnItemClickListener =onItemClickListener;
        this.layoutInflater = LayoutInflater.from(context);
    }

以上就是接口回调的步骤,很简单的也很实用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrsongs的心情杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值