扩展Android Parcelable类

时间:2013-04-05 00:22:03

标签: android oop interface subclass parcelable

我有一个CustomAddress类,它扩展了实现android.location.Address的{​​{1}}类。

我正在尝试将Parcelable工具CustomAddress设置为,但在从包裹创建课程时遇到困难。从包裹创建Parcelable时我想要的是首先填写超类CustomAddress的所有字段,然后是我自己的字段。所以我实现了Address字段:

CREATOR

但在我的public static final Parcelable.Creator<CustomAddress> CREATOR = new Parcelable.Creator<CustomAddress>() { public CustomAddress createFromParcel(Parcel in) { return new CustomAddress(in); } public CustomAddress[] newArray(int size) { return new CustomAddress[size]; } }; 创建者中,我无法致电CustomAddress(Parcel in),因为super(in)中不存在android.location.Address。我只能访问android.location.Address.CREATOR。那么如何使用CREATOR填写我的字段?

编辑:链接到Android Addresshttps://developer.android.com/reference/android/location/Address.html

1 个答案:

答案 0 :(得分:0)

这是一个类似的问题和Mark Murphy的优秀答案:https://stackoverflow.com/a/10841502/1140682

因此,在您的情况下,您将CustomAddress扩展Address(就像您已经做过的那样),在构造函数中调用super()方法,然后从传递中读取您自己的属性Parcel。必须在writeToParcel()方法中完成相同的操作(同样的顺序),当然这里是将属性添加到宗地。