我想将整个(自定义)类引用传递给另一个活动。 该类称为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");
答案 0 :(得分:1)
要通过intent传递类,必须实现Parcelable
接口。 Here is a tutorial如何做到这一点,不应该花太多时间。执行此操作后,您可以通过意图将该类的实例传递给您想要的任何内容。
答案 1 :(得分:0)
在活动之间传递自定义类的方法是创建类Parcelable。这是一种序列化数据的方式,因此可以轻松地发送数据。在您的课程为Parcelable后,您可以使用标准putExtra并将课程传入。要检索课程,您可以使用getParcelableExtra。使用Parcelable时,请记住您不能包含空值,并且所有嵌套类也必须是可分区的。在您的情况下,您必须使您的WeekProgramData类与您的Day和Switch类一样可以。
答案 2 :(得分:0)
可能有几种不同的方法可以做到这一点,但我认为两个最好的选择是:
WeekProgramData
应实施Parcelable
或使用 Gson 将wpd
转换为String
,将该字符串传递给您的第二个活动,最后使用 Gson <从该字符串重建您的对象/ strong>再次