2013-03-21 32 views
2

为了通过2个活动之间的物体在我的应用程序,我做了类实现Parcable,一切工作正常。现在我想用一个字符串数组(String [] [])来扩展这个类。写入/读出阵列或Stringarrays在Parcelable

我搜索了一段时间的互联网,但我找不到方法来处理这在writeToParcel(Parcel dest, int flags)和构造函数MyClass(Parcel in)

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

有什么建议吗?

+0

你不能只是在阵列的环-'String []'并使用'writeStringArray(String [] val)''写出每个'String []'?阅读你显然使用适当的对应。您可能必须首先写出String []数组的大小,以便在读取值时轻松地重构整个事物。 – 2013-03-21 18:24:39

回答

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(); 
} 
+0

这似乎是一个很好的解决方案给我。谢谢! – danijoo 2013-03-21 18:37:57