2

为了在我的应用程序中的 2 个活动之间传递一个对象,我让该类实现 Parcable 并且一切正常。现在我想用一个字符串数组 (String[][]) 来扩展这个类。

我在互联网上搜索了一段时间,但我找不到writeToParcel(Parcel dest, int flags)在 Constructor 处和中处理此问题的方法MyClass(Parcel in)

另一种选择是创建一个只有 2 个字符串 stringA 和 stringB 的类,并让该类也实现 Parcable。然后我可以使用 readList() 和 writeList() 来编写 Parcables 的列表,但这似乎不是一个理想的解决方案。

有什么建议么?

4

1 回答 1

2

Parcel 类有一个 writeStringArray() 方法。你的类不能遍历 String[][] 并为每个调用 writeStringArray 吗?

假设您的班级有一个成员:

String[][] data;

在 writeToParcel()

parcel.writeInt(data.length);
for( int i=0; i<data.lengh; i++ ){
    parcel.writeStringArray(data[i]);
}

在 createFromParcel()

int size = parcel.readInt();
data = new String[size][];
for( int i=0; i<size; i++ ){
  data[i] = parcel.readStringArray();
}
于 2013-03-21T18:26:21.920 回答