如何将对象数组传递给Activity?

时间:2010-11-15 06:14:05

标签: android android-activity bundle

我已经阅读过有关将数组传递给活动的帖子,但我很困惑我将如何为我的具体情况做这件事。

我有一个名为DaysWeather(DaysWeather []数组)的对象数组,其中对象具有多个String属性以及位图属性。我读到某个地方,你必须把它变成可序列化的或者可以用的东西,但乍一看似乎很乱。

有人能引导我朝着正确的方向前进吗?

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:5)

您的对象需要实现Parcelable interface

完成此操作后,您可以创建Parcelable数组并将其传递给活动:

// We assume we have an array: DaysWeather[] input;
Parcelable[] output = new Parcelable[input.length];
for (int i=input.length-1; i>=0; --i) {
    output[i] = input[i];
}

Intent i = new Intent(...);
i.putExtra("myArray", output);

另请注意,在实现Parcelable接口时,请不要序列化完整的重物。例如,对于您的位图,仅序列化ressource ID,并在充气时,从资源ID重新创建位图。