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

joe*_*ich 7 android bundle android-activity

我已经阅读了关于从活动传递数组的帖子,但我对于如何针对我的具体情况这样做感到困惑.

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

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

有一个简单的方法吗?

Vin*_*rat 5

您的对象需要实现Parcelable接口.

完成此操作后,您可以创建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);
Run Code Online (Sandbox Code Playgroud)

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