用户在地图上创建标记后,如何将它们+所有属性(lat,long,title,snippet等)保存在结构/数组中,然后将它们全部列在单独的活动中?我应该创建一个关联每个标记的对象吗?
以下是{{1}}的代码:
{{1}}
答案 0 :(得分:2)
要使用创建的标记,您可以创建List<Marker>
:
private List<Marker> markers = new ArrayList<Marker>();
然后将创建的标记添加到其中:
Marker m = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title(marker_title));
markers.add(m);
如果您需要将标记的值传递给另一个Activity
,因为标记是UI的一部分,它不会被认为是持久的,但是MarkerOptions
实现了Parcelable
并且您可以使用意图将其发送到另一个活动:
List<MarkerOptions> markers = new ArrayList<MarkerOptions>();
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(lat, lon))
.title(marker_title);
Marker m = mMap.addMarker(markerOptions);
markers.add(markerOptions);
然后,您可以使用意图发送列表:
MarkerOptions[] markersArray = markers.toArray(new MarkerOptions[markers.size()]);
Intent intent = new Intent();
intent.putExtra("markers", markersArray);