2

我有一个CustomAddress类扩展了android.location.Address实现的类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

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

4

1 回答 1

0

这是一个类似的问题和马克墨菲的优秀答案:https ://stackoverflow.com/a/10841502/1140682

因此,在您的情况下,您将进行CustomAddress扩展Address(就像您已经做的那样),在构造函数中调用该super()方法,然后从传递的Parcel. 在方法中也必须这样做(以相同的顺序)writeToParcel(),当然在这里将您的属性添加到包裹中。

于 2013-04-05T01:38:42.877 回答