Android:如何将geopoint放入onSavedInstanceState捆绑

Android:如何将geopoint放入onSavedInstanceState捆绑,android,google-maps,Android,Google Maps,我正在使用谷歌地图API开发应用程序, 我成功地绘制了两点(地质点)的路径 从肖像画到风景画, 地图将失效(因为活动生命周期),你知道吗? 所以,我输了两分 我知道我们必须在savedinstancestate(Bundle outState)方法中保存两点。 因此,我希望在从纵向更改为横向时,保存两个该点(地理点)以便再次绘制 我不知道如何用那种方法把地球点放入包中。 请告诉我 问候 告诉我地质点有一个具有两个参数的构造函数:纬度、经度。这两个属性都有getter。因此,要么获取它们并将它们放

我正在使用谷歌地图API开发应用程序, 我成功地绘制了两点(
地质点
)的路径

从肖像画到风景画, 地图将失效(因为活动生命周期),你知道吗? 所以,我输了两分

我知道我们必须在savedinstancestate(Bundle outState)
方法中保存两点。
因此,我希望在从纵向更改为横向时,保存两个该点(
地理点
)以便再次绘制

我不知道如何用那种方法把
地球点
放入
包中
。
请告诉我

问候

告诉我
地质点
有一个具有两个参数的构造函数:纬度、经度。这两个属性都有getter。因此,要么获取它们并将它们放入
捆绑包中
,要么扩展类并创建包装类。这两种解决方案都可以很好地发挥作用

public class ParcelableGeoPoint implements Parcelable {
    private GeoPoint point;    

    public ParcelableGeoPoint(int lat, int lon){
        point = new GeoPoint(lat, lon);
    }

    public ParcelableGeoPoint(Parcel in){
        int[] data = new int[2];
        in.readIntArray(data);
        point = new GeoPoint(data[0], data[1]);
    }

    public int describeContents(){
        return 0;
    }

    public GeoPoint unwrap() {
        return point;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeIntArray(new int[] {point.getLat(), point.getLon()});
    }
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public ParcelableGeoPoint createFromParcel(Parcel in) {
            return new ParcelableGeoPoint(in); 
        }

        public ParcelableGeoPoint[] newArray(int size) {
            return new ParcelableGeoPoint[size];
        }
    };
}
试试这个,我想它会很好用的

public class ParcelableGeoPoint implements Parcelable {
    private GeoPoint point;    

    public ParcelableGeoPoint(int lat, int lon){
        point = new GeoPoint(lat, lon);
    }

    public ParcelableGeoPoint(Parcel in){
        int[] data = new int[2];
        in.readIntArray(data);
        point = new GeoPoint(data[0], data[1]);
    }

    public int describeContents(){
        return 0;
    }

    public GeoPoint unwrap() {
        return point;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeIntArray(new int[] {point.getLat(), point.getLon()});
    }
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public ParcelableGeoPoint createFromParcel(Parcel in) {
            return new ParcelableGeoPoint(in); 
        }

        public ParcelableGeoPoint[] newArray(int size) {
            return new ParcelableGeoPoint[size];
        }
    };
}
然后,用
Bundle.putParcelable(“MYPOINT”,geopointParcelable)