为了在我的应用程序中的两个活动之间传递一个对象,我让这个类实现了Parcable,一切正常。现在我想用一个String Arrays数组(String [] [])扩展这个类。
我在互联网上搜索了一段时间,但我找不到办法在writeToParcel(Parcel dest, int flags)
和构造函数MyClass(Parcel in)
中处理此问题。
另一种选择是创建一个只有2个字符串stringA和stringB的类,并让该类实现Parcable。然后我可以使用readList()和writeList()来编写Parcables的列表,但这似乎不是一个理想的解决方案。
有什么建议吗?
答案 0 :(得分: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();
}