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

Android Studio点击ListView行内按钮获取关联Trip对象并跳转Activity实现问题

实现方案

首先要让Trip类支持序列化,方便跨页面传递:

  1. 给Trip类实现Serializable接口(性能要求高也可以用Parcelable,实现更复杂但传递效率更高),示例:
public class Trip implements Serializable {
    // 原有属性、getter、setter逻辑保持不变即可
}
  1. 在TripAdapter的getView方法中,给「More info」按钮绑定点击事件,直接使用当前行对应的Trip实例跳转:
    找到你代码中获取到moreInfoBtn的位置,添加如下逻辑:
// 给更多信息按钮绑定点击事件
moreInfoBtn.setOnClickListener(v -> {
    // 替换为你要跳转的目标Activity类名即可
    Intent intent = new Intent(context, TripDetailActivity.class);
    // 将当前行的Trip对象存入Intent
    intent.putExtra("trip_data", trip);
    context.startActivity(intent);
});

如果编译报错提示trip需要是final类型,把Trip trip = getItem(position);改为final Trip trip = getItem(position);即可。

  1. 在跳转的目标Activity中取出Trip对象:
    在目标Activity的onCreate方法中添加如下逻辑:
// 取出传递的Trip实例
Trip trip = (Trip) getIntent().getSerializableExtra("trip_data");
// 后续直接使用trip对象的属性渲染页面即可

注意事项

不要使用你代码中定义的public static Trip currentTrip静态变量存储当前行数据,列表滚动的时候行布局会复用,静态变量会被后续行的数据覆盖,容易出现点击按钮拿到错误Trip对象的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 22:45:08