1

我想将整个(自定义)类引用传递给另一个活动。此类称为 WeekProgramData。WeekProgramData 有一个包含 7 个 Day(类)实例的数组,每个 Day 类都有几个 Switch 实例。

如何在活动之间传递类引用,以便我可以在其他活动中使用该类的方法等?

我已经尝试了以下方法,但失败了:首先,在活动 A 中声明

WeekProgramData wpd = new WeekProgramData();

在活动 A 中传递 WeekProgramData 类引用的代码:

Intent intent = new Intent(v.getContext(), WeekOverview.class);
            intent.putExtra("wpd", wpd);
            startActivity(intent);

活动 B 中用于获取类引用的代码:

Bundle extras = getIntent().getExtras();
    WeekProgramData wpd = extras.getWeekProgramData("wpd");
4

3 回答 3

1

要通过意图传递类,您必须实现Parcelable接口。这是一个关于如何做的教程,它不应该花你太长时间。完成此操作后,您可以通过意图将该类的实例传递给您想要的任何内容。

于 2013-06-19T15:34:20.267 回答
0

在活动之间传递自定义类的方法是使您的类Parcelable。这是一种序列化数据的方法,因此可以轻松发送。一旦您的课程是 Parcelable ,您就可以使用标准的putExtra并将您的课程传入。要检索您的课程,您可以使用getParcelableExtra。使用 Parcelable 请记住,您不能对 null 值进行 parcel,并且所有嵌套类也必须是 parcelable 的。在您的情况下,您必须使您的 WeekProgramData 类以及您的 Day 和 Switch 类可打包。

于 2013-06-19T15:34:14.580 回答
0

可能有几种不同的方法可以做到这一点,但我认为最好的两个选择是:

  1. WeekProgramData应该实施Parcelable

  2. 或转换wpdString使用Gson,将该字符串传递给您的第二个活动,最后再次使用Gson从该字符串重建您的对象

于 2013-06-19T15:34:23.050 回答