RecyclerView 添加 ItemClickListener

本文介绍了在RecyclerView中添加Item点击事件的多种方法,包括在Adapter中通过创建ViewHolder实现回调接口,以及使用addOnItemTouchListener方法结合GestureDetector监听点击事件。详细讲解了不同实现方式的优缺点,并提供了参考链接。
摘要由CSDN通过智能技术生成

RecyclerView现在是没有提供setOnItmeClickListener()方法的,但是它提供了 addOnItemTouchListener()方法。

要实现对Item点击,或者其他事件的监听 有以下几种解决方案。

在Adpater中做文章

在Adapter中处理也分为两类
不过大致的思路都是一样

  1. ViewHolder implements OnClickListener 复写 onClick方法
  2. 为需要监听的View设置 监听事件 setOnClickListener
  3. 定义自己的点击事件回调接口,在onClick方法中调用自己的回调接口
  4. 实现自己定义的回调接口,这一步有两种实现方式。
在onCreateViewHolder中实现回调接口

在 onCreateViewHolder中实现的优点是onCreateViewHolder(ViewGroup parent, int viewType)
有两个参数,如果你的 ViewHolder有多种类型的话,可以根据 viewType参数来对不同的ViewHolder做不同的处理。

缺点:这个地方定义接口回调,没有position参数,要想知道被点击的item的位置,比较麻烦。下面是具体代码


//Adapter内部类ViewHolder的具体实现。

public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
   

    public TextView txtViewTitle;
    public ImageView imgViewIcon;
    public IMyViewHolderClicks mListener;


    public ViewHolder(View itemLayoutView, IMyViewHolderClicks listener) {
        super(itemLayoutView);
        mListener = listener;
        txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.item_title);
        imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
        imgViewIcon.setOnClickListener(this);
        itemLayoutView.setOnClickListener(this);
    }


    //在点击事件中调用自己的接口
    @Override
    public void onClick(View v) {
        if (v instanc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值