我有一些带有信息窗口的Google Maps标记(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"
该OnInfoWindowClickListener
是对地图,而不是标记。因此,您当前的代码是:
创建一个 OnInfoWindowClickListener
创建另一个OnInfoWindowClickListener
,丢弃前一个
等等
打电话setOnInfoWindowClickListener()
一次。在中onInfoWindowClick()
,您传递了一个Marker
代表用户单击的内容。使用它Marker
,确定额外的价值放入您的笔记本电脑Intent
。例如,IIRCMarker
有一个getId()
方法,因此您可以HashMap<String, String>
将标记ID映射到其他值,在其中onInfoWindowClick()
查找单击的标记的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句