将GeoPoint转换为String,然后将该字符串转换回GeoPoint

时间:2011-11-09 19:14:07

标签: java android eclipse google-maps gps

有点奇怪的问题。

我将数据从一个活动传递到另一个活动 - 特别是两个GeoPoints。但是,正如我发现的那样,您无法传递GeoPoint类型的ArrayList。我想把它们转换成字符串并将它们传递给string类型的ArrayList(所以,geopoint1.tostring()),这很好,但我不知道如何在下一个活动中将它们转换回GeoPoint。

我所做的可能是完全精神和愚蠢的,但我似乎无法想到任何其他方式。

我发布了这个简短的问题,试着快速回复一下,但如果您需要更多信息,请问我,我会直截了当。

BTW,我正在使用intent.putExtra等传递数据

谢谢你们!

2 个答案:

答案 0 :(得分:2)

我不知道什么是Android,但我无法拒绝回答一个美好的新开始。

我想有一种更简单的方法可以传递一个GeoPoint(SO成员,帮助我),但是如果你把它作为一个字符串传递,那么你可以做什么:

从String中解析纬度和经度。我猜你只需将它拆分为','并将这两部分转换为int(您必须通过查看GeoPoint.toString()的结果来验证这一点。

String[] separated = yoGeoPointAsString.split(",");
// I suppose, this will contain latitude
int latitudeE6 = Integer.parseInt(separated[0]); 
// I suppose, this will contain longitude
int longitudeE6 = Integer.parseInt(separated[1]); 

从字符串中提取了两个int值后,只需调用构造函数:

GeoPoint gp = GeoPoint(latitudeE6, longitudeE6);

答案 1 :(得分:2)

GeoPointgetLatitudeE6()/getLongitudeE6()返回一个int。

因此,您可以在int数组中使用坐标并将其发送 来自意图的putExtra(String name, int[] value)

int[] myGeoPoints = { 30, 50 };
putExtra("myCoordinates", myGeoPoints)

并使用getIntent().getExtras().getIntArray

从目标活动中检索数组
getIntent().getExtras().getIntArray("myCoordinates")

或者你可以将纬度/经度用不同的键放在Intent的Extra中 putExtra(String name, int value)