You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

聊天应用开发:如何获取RecyclerView中被点击项对应的对象?

如何在RecyclerView点击时获取对应对象

核心思路

给RecyclerView的每个Item绑定点击事件,在点击回调中直接拿到当前位置对应的ArrayList对象。

具体实现步骤

  • 在Adapter中定义并设置点击监听

    1. 先在Adapter内部定义点击回调接口:
    public interface OnItemClickListener {
        void onItemClick(YourDataModel clickedItem);
    }
    
    1. 在Adapter类中添加监听成员变量和设置方法:
    private OnItemClickListener itemClickListener;
    
    public void setOnItemClickListener(OnItemClickListener listener) {
        this.itemClickListener = listener;
    }
    
    1. 在onBindViewHolder方法中,给ItemView绑定点击事件,触发回调时传入当前对象:
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        YourDataModel currentItem = yourArrayList.get(position);
        // 这里完成数据到UI的绑定操作
    
        holder.itemView.setOnClickListener(v -> {
            if (itemClickListener != null) {
                itemClickListener.onItemClick(currentItem);
            }
        });
    }
    
  • 在Activity/Fragment中实现回调逻辑
    初始化RecyclerView和Adapter后,设置点击监听,拿到被点击的对象:

    yourAdapter.setOnItemClickListener(clickedItem -> {
        // 直接获取被点击对象里的手机号
        String targetPhone = clickedItem.getPhoneNumber();
        // 跳转到消息页面,可通过Intent传递手机号
        Intent intent = new Intent(this, MessageDisplayActivity.class);
        intent.putExtra("TARGET_PHONE", targetPhone);
        startActivity(intent);
    });
    

补充说明

  • YourDataModel是你定义的实体类,需包含获取手机号的方法(比如getPhoneNumber())。
  • 若使用Kotlin开发,逻辑完全一致,可利用函数类型简化接口定义,语法更简洁。

内容的提问来源于stack exchange,提问作者Sanglap Karmakar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 02:14:57