2013-02-18 51 views
1

我有一个类TableMetaAttrs:如何在非原始类型上使用Parcelable?

public class TableMetaAttrs implements Parcelable 
{ 
    private Integer id; 
    private String name; 
    private String value; 
    private Tables table; 
... 

怎样才能在领域实现Parcelable? 类表也实现了Parcelable。

+0

如果'Tables'实现'Parcelable',则不需要执行任何特定的序列化/反序列化table。 – Rajesh 2013-02-18 13:04:10

回答

0

您还必须制作Tablesimplements Parcelable

这种方式每当TableMetaAttrs正在parcelling或重新建设自己,它可以呼叫putParcelablegetParcelable表的字段。

编辑:

我假设表为您创建一个类,所以它的签名必须是

public class Tables implements Parcelable{ 
    // and somewhere in this code tables have to parcel all it's primitives 
} 

那么只要TableMetaAttrs被瓜分它的价值它要求:

parcel.putParcelable(table); 

并重建它:

table = parcel.getParcelable(); 
+0

如果我理解你,那么我的构造函数应该看起来像这样? 'public TableMetaAttrs(Parcel in) \t { \t \t id = in.readInt(); \t \t name = in.readString(); \t \t value = in.readString(); \t \t table = in.readParcelable(table.getClass()。getClassLoader()); \t}' – cutoff 2013-02-18 13:08:31

+0

这是什么?它没有显示在你的coment上 – Budius 2013-02-18 13:09:19

+0

table = parcel.getParcelable();将不起作用; parcel.readParcelable()可能。 – axd 2015-06-18 09:22:52