通过Intent传递整个类引用

时间:2013-06-19 15:29:16

标签: android android-intent android-activity

我想将整个(自定义)类引用传递给另一个活动。 该类称为WeekProgramData。 WeekProgramData有一个7天(类)实例的数组,每个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");

3 个答案:

答案 0 :(得分:1)

要通过intent传递类,必须实现Parcelable接口。 Here is a tutorial如何做到这一点,不应该花太多时间。执行此操作后,您可以通过意图将该类的实例传递给您想要的任何内容。

答案 1 :(得分:0)

在活动之间传递自定义类的方法是创建类Parcelable。这是一种序列化数据的方式,因此可以轻松地发送数据。在您的课程为Parcelable后,您可以使用标准putExtra并将课程传入。要检索课程,您可以使用getParcelableExtra。使用Parcelable时,请记住您不能包含空值,并且所有嵌套类也必须是可分区的。在您的情况下,您必须使您的WeekProgramData类与您的Day和Switch类一样可以。

答案 2 :(得分:0)

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

  1. WeekProgramData应实施Parcelable

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