一般Parcelable对象(可能)?

时间:2014-01-20 19:11:14

标签: java android reflection parcelable parcel

您好我正在尝试创建一个名为ParcelableObject的类,其中我实现了Parcelable接口。

然后我将创建其他对象,它们将扩展ParcelableObject。 我这样做是因为我不想在每个对象中编写Parcelable接口的方法。

至于现在,我已经成功地为包含其他对象的对象(它们都扩展了ParcelableObject类)和原始类型。

我为阵列和原始类型列表以及阵列和对象列表做了麻烦

我打算将其扩展为Lists,Arrays。

我这样做的方法是获取给定对象的所有字段

所以这是我的问题。 首先 这可能吗? 其次,我试图将其扩展为数组或原始类型列表,但我没有做到。 更具体。现在我正在尝试将其扩展为整数数组或整数列表。 因为我看到我无法从包裹中读取整数列表,因为我得到了投射错误等。 所以任何帮助都会感激不尽。

此处的基本思想是将ParcelableObject存储为其子类的对象。 然后,如果我得到一个对象(不是原始类型),我将其类名写入parcel,然后写入该对象。 因此,当我想从包中读取一个对象时,我首先读取带有类名的字符串,使用(Class.forName()等)创建该类的新实例,然后将从parcel读取的对象分配给实例化的Object以上。如果有更好的方法来获取ParcelableObject的子类的类名,而不是填充包不需要的字符串id就知道了。

这是ParcelableObject.java 您可以下载整个Android ParcelableObject项目来测试它。演示包括在内。 在虚拟设备Nexus S(4.2)下测试它。项目的目标是4.0及以上的工作。

https://github.com/tchar/ParcelableObject/blob/master/ParcelableObject/src/com/parcelableobject/ParcelableObject.java

更新***添加了对原始对象列表的支持。 原始类型(int等)仍然存在问题,而不是使用整数和ParcelableObjects列表

提前致谢。

0 个答案:

没有答案