我们如何在意图中包裹嵌套对象?。
例如
假设有一个对象A,它包含一个字符串变量和另一个对象B.现在B包含对象C. C包含字符串列表。所以我如何在意图中包含对象A.任何对此的帮助都将受到赞赏。
提前感谢。
实施
public static class A
{
private B ObjectB;
}
public static class B
{
private String type;
private List<C> C;
}
public static class C
{
private List<D> D;
}
public static class D
{
private String id;
private String name;
private String address;
private String email;
}
如何为C类编写parcelable 我正在使用
dest.writeParceable(ObjectC,flag)
阅读:
in.readParcelable(C.getClass().getClassLoader());
但它不起作用
答案 0 :(得分:1)
你必须为对象B实现parcelable,然后为对象A实现parcelable。我从来没有这样做但是上面应该可以工作。
修改强>
请参阅下面的代码片段,其中说明了如何为C类实现parcelable。
首先为D类实现parcelable,如下所示:
dest.writeString(id);
dest.writeString(name);
dest.writeString(address);
dest.writeString(email);
id = in.readString();
name = in.readString();
address = in.readString();
email = in.readString();
然后按如下方式为C类实现parcelable:
dest.writeList(D);
in.readList(D,this.getClass().getClassLoader());
这是未经测试的代码,因为我从未实现嵌套的parceling但值得一试。希望有所帮助。
答案 1 :(得分:0)
我看到这样做的一种方法是使用序列化
例如。
如果您有变量:
Date createdAt;
然后在writeToParcel(Parcel out, int flags)
中你可以写:
out.writeSerializable(createdAt);
要阅读yoy会使用的值:
createdAt = (Date) in.readSerializable();
虽然说Parcelable是专门创建的,因为Java序列化被认为太慢了。因此,虽然这有效,但使用更大的数据并不是一个好主意。