RecyclerView多种方法为Adapter设置点击事件

前言如果我们想要为Adapter设置点击事件(比如获取adapter的position)谷歌并没有提供现有的方法,据说是为了扩展性。不过同时对新手也不太友好了。这里提供两种方法,使用kotlin实现。方法一:在Adapter单独设置在Adapter的onCreateViewHolder或者onBindViewHolder单独为每个组件设置点击事件,两处都可以,但推荐在onBindViewHolder实现。方法二:提供自定义接口上一种方法有一个明显的缺点:如果点击的逻辑需要在Activity或者F
摘要由CSDN通过智能技术生成

方法一:在Adapter单独设置

AdapteronCreateViewHolder或者onBindViewHolder单独为每个组件设置点击事件,两处都可以,但推荐在onBindViewHolder实现。

方法二:提供自定义接口

上一种方法有一个明显的缺点:如果点击的逻辑需要在Activity或者Fragment使用就会变得麻烦,比如长按弹出一个Dialog然后进行逻辑处理,这种情况下把逻辑放在Adapter绝对不是明智之选。

实现思路:在Adapter提供接口,由外部实现


  1. 首先在Adapter声明一个接口,里面提供等待实现的回调函数
  2. 声明一个延迟初始化接口变量
  3. 设置一个函数用以设置接口(用来给第二步的变量赋值)
  4. 通过view自带的setOnClickListenersetOnLongClickListener的回调函数调用接口的函数,实现回调的效果。实现哪种按照需求,这里我同时实现了两个。
  5. 最后一步,调用自定义的setOnItemClickListener并实现自己的回调逻辑
/*为节省篇幅,删去了无关代码*/
/*adapter类*/{
   
    /*步骤2的接口变量*/
    private lateinit var onItemClickListener: OnItemClickListener

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值