Android 如何从标记列表中提取标记信息
我使用以下代码在mapfragment中创建一个标记列表,使用三个数组发送一个记录列表的纬度、经度和名称信息。我的目标是在单击“信息”窗口时将记录的名称发送给新的意图。现在为所有标记发送数组最后一项的记录名,但我需要向每个标记发送特定信息。有什么想法吗Android 如何从标记列表中提取标记信息,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我使用以下代码在mapfragment中创建一个标记列表,使用三个数组发送一个记录列表的纬度、经度和名称信息。我的目标是在单击“信息”窗口时将记录的名称发送给新的意图。现在为所有标记发送数组最后一项的记录名,但我需要向每个标记发送特定信息。有什么想法吗 String[] arraylatitud = arrlat.toArray(new String[arrlat.size()]); String[] arraylongitud = arrlon.
String[] arraylatitud = arrlat.toArray(new String[arrlat.size()]);
String[] arraylongitud = arrlon.toArray(new String[arrlon.size()]);
String[] arrayrecordname = arrrecname.toArray(new String[arrrecname.size()]);
for(int i=0; i<arrlon.size();i++){
mapa.addMarker(new MarkerOptions()
.position(new LatLng(Float.valueOf (arraylatitud[i]),Float.valueOf (arraylongitud[i])))
.title("Grabación:" + arrayrecordname[i])
.snippet("Latitud:" + arraylatitud[i] + "Longitud:" + arraylongitud[i]));
filename = arrayrecordname[i];
}
mapa.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(MapArea.this, StreamingArea.class);
intent.putExtra("variable_selection", filename.toString());
startActivity(intent);
}
}
String[]arraylatitud=arrlat.toArray(新字符串[arrlat.size()]);
字符串[]arraylongitud=arrlon.toArray(新字符串[arrlon.size()]);
String[]arrayrecordname=arrrecname.toArray(新字符串[arrrecname.size()]);
对于(inti=0;i,我刚刚在这方面发表了一篇博文。
您可以在以下网址找到:
每个标记都有一个Id
Marker m = mapa.addMarker(new MarkerOptions()
.position(new LatLng(Float.valueOf (arraylatitud[i]),Float.valueOf (arraylongitud[i])))
.title("Grabación:" + arrayrecordname[i])
.snippet("Latitud:" + arraylatitud[i] + "Longitud:" + arraylongitud[i]));
m.getId();
如果您存储了该id以及您需要的信息,则可以获得正确的信息
getMap().setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
public void onInfoWindowClick(Marker marker) {
int id = marker.getId();
Intent i = new Intent(MapArea.this.getActivity(), StreamingArea.class);
//your code goes here
i.putExtra(....);
startActivity(i);
}
});
这对我不起作用,总是返回列表的最后一个id。在另一个论坛中,建议我使用private map markerMap=new HashMap()类型的映射;要获取OnInfo WindowClick(),markerMap.get(marker)可以调用它但我不认为这是如何实现的。是的,这就是我的意思。我会在大约一个小时后更好地解释它。我看过你的教程,我所有的问题都解决了,我的应用程序现在运行得很好。再次感谢。