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

ListView自定义Adapter中点击条目按钮跳转Activity并传offerID参数的实现方法

报错原因

startActivity()是Context或Activity类的专属方法,你自定义的UsersAdapter本身没有这个方法,直接调用自然会报方法不存在的错误,只需用Adapter持有的Context对象调用该方法即可。

实现代码修改

1. Adapter中onClick逻辑替换

首先修改getView方法中user的声明,添加final修饰,保证内部类可以正常访问:

final UserItem user = getItem(position);

然后替换onClick内的跳转逻辑,将代码中的你的目标Activity替换为你实际要跳转的Activity类名:

@Override
public void onClick(View v) {
    Context context = getContext();
    // 初始化跳转Intent
    Intent intent = new Intent(context, 你的目标Activity.class);
    // 携带offerID参数,键名可自定义,后续取值和这里对应即可
    intent.putExtra("offer_id", user.getOfferID());
    // 使用Context启动Activity
    context.startActivity(intent);
}

如果启动时提示需要添加FLAG_ACTIVITY_NEW_TASK,可在调用startActivity前添加一行代码:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);,一般传入Activity作为Context的场景不需要额外添加

2. 目标Activity取值

在目标Activity的onCreate方法中可以拿到传递的参数:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 省略布局加载等原有逻辑
    String offerId = getIntent().getStringExtra("offer_id");
    // 拿到offerId后即可执行后续业务逻辑
}

注意:跳转前要确保你的目标Activity已经在AndroidManifest.xml中完成注册

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:06:04