我有一些带有信息窗口的谷歌地图标记(10)。通过单击信息窗口,应该启动一个新活动,并通过intent.put extra()传输一个值: 我的问题是,总是最后一个标记的值被转移到下一个活动,虽然我点击另一个信息窗口,在这种情况下它是101010。 我的代码:
Marker marker1 = map.addMarker(new MarkerOptions()
.title(itemList.get(1))
.icon(BitmapDescriptorFactory.fromResource(getDrawableId(imagename)))
.position(new LatLng(Double.parseDouble(itemList.get(2)), Double.parseDouble(itemList.get(3))))
);
System.out.println("MoID=" + monsterid1);
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker1) {
Intent intent1 = new Intent(showmap.this, MonsterDetail.class);
intent1.putExtra("monsterid", monsterid); //value i want to transfer to next activity e.g "111"
startActivity(intent1);
}
});
Marker marker2 = map.addMarker(new MarkerOptions()
.title(itemList.get(5))
.icon(BitmapDescriptorFactory.fromResource(getDrawableId(imagename)))
.position(new LatLng(Double.parseDouble(itemList.get(6)), Double.parseDouble(itemList.get(7))))
);
System.out.println("MoID=" + monsterid1);
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker2) {
Intent intent2 = new Intent(showmap.this, MonsterDetail.class);
intent2.putExtra("monsterid", monsterid2); //value i want to transfer to next activity e.g. "222"
startActivity(intent2);
}
});
Marker marker10 = map.addMarker(new MarkerOptions()
...
...
...
intent10.putExtra("monsterid", monsterid10); //value i want to transfer to next activity e.g. "101010"
答案 0 :(得分:1)
OnInfoWindowClickListener
用于地图,而不是标记。所以,您当前的代码是:
制作OnInfoWindowClickListener
创建另一个OnInfoWindowClickListener
,丢掉前一个
依此类推
致电setOnInfoWindowClickListener()
一次。在onInfoWindowClick()
中,您会传递一个代表用户点击内容的Marker
。使用Marker
,确定要放入Intent
的额外值。例如,IIRC,Marker
有getId()
方法,因此您可以将HashMap<String, String>
映射标记ID添加到额外值,在onInfoWindowClick()
中查找值的bootstrap.css
点击标记。