如何写入 Parcel 可序列化列表(不可 Parcelable)

How to write to Parcel a List of Serializable (not Parcelable)

我正在使用具有 LatLong 对象的 mapsforge 库来存储地图上的点。不幸的是,它只实现了 Serializable 接口,而不是 Parcelable。

public class LatLong implements Comparable<LatLong>, Serializable

在我的应用程序中,我有一个对象(我们称之为结果),它存储了 LatLong 点列表:

List<LatLong> points;

我的 class 结果实现了 Parcelable。

我的问题是如何写入 Parcel 列表,其中 LatLong 是可序列化的但不是可包裹的? writeSerializable,writeTypedList 不工作。

在您的 writeToParcel() 方法中,使用此代码:

dest.writeInt(latLongList.size());
for (LatLong latLong : latLongList) {
  dest.writeDouble(latLong.latitude);
  dest.writeDouble(latLong.longitude);
}

在从 CREATOR.createFromParcel(Parcel source) 调用的私有对象构造函数中,使用此代码:

latLongList = new ArrayList<LatLong>();
int size = source.readInt();
for (int i = 0; i < size; i++) {
  double lat = source.readDouble();
  double lon = source.readDouble();
  latLongList.add(new LatLong(lat, lon));
}

我基于我在 mapsforge.org

找到的 JavaDocs