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

如何为展示数据库数据的RecyclerView CardView设置点击事件并解决报错

解决RecyclerView卡片点击传参的报错问题

错误根源

你写的holder.Name_id.get(position)完全搞错了对象类型——Name_id是TextView控件,它根本没有get(position)方法,这就是报错的核心原因。

修复方案

直接从数据源usersList里获取当前位置的Users对象数据即可,你在onBindViewHolder开头已经拿到了这个对象,直接用它的getter方法传参就行。另外注意:你原来的代码漏了启动Activity的步骤,补上后点击卡片才会跳转。

修改onBindViewHolder中的点击事件代码:

@Override
public void onBindViewHolder(@NonNull UserHolder holder, int position) {
    Users users=usersList.get(position);
    holder.Name_id.setText(users.getName());
    holder.Type_id.setText(users.getType());
    holder.Location_id.setText(users.getLocation());
    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(context, cardviewclick.class);
            // 直接用已获取的users对象拿原始数据,无需从TextView读取
            intent.putExtra("Name", users.getName());
            intent.putExtra("Type", users.getType());
            intent.putExtra("Location", users.getLocation());
            // 启动详情页Activity
            context.startActivity(intent);
        }
    });
}

额外提醒

从数据源直接拿数据比从TextView读取文本更可靠:如果后续你对TextView的显示文本做了格式化(比如加前缀、转格式),从数据源获取的原始数据才是准确的,不会出现格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:45:37