所以这些是我在地图中的两个循环,当我点击setoninfowindow时,我只在新屏幕中获得first.class。如果我点击其中一个标记,它必须转到first.class,如果我点击另一个标记,它必须转到second.class
firstloop
for (HashMap<String, Object> data : firstLoop) {
final String regno = (String) data.get(REG_NO);
String dname = (String) data.get(CAR);
final String driver_ph = (String) data.get(MOBILE);
longt=Float.parseFloat((String) data.get(LONGITUDE));
lat=Float.parseFloat((String) data.get(LATITUDE));
map.addMarker(new MarkerOptions()
.position(new LatLng(lat, longt))
.title("title2")
.snippet(name)
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pin_car)));
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent in=new Intent(getApplicationContext(),second.class);
startActivity(in);
}}); }
secondloop
for (HashMap<String, Object> data : secondloop) {
String reg = (String) data.get(ID);
longt=Float.parseFloat((String) data.get(1_LONGITUDE));
lat=Float.parseFloat((String) data.get(1_LATITUDE));
map.addMarker(new MarkerOptions()
.position(new LatLng(lat, longt))
.title("title1")
.snippet(reg)
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pin_car)));
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent in=new Intent(getApplicationContext(),first.class);
in.putExtra("driverid", marker.getSnippet());
startActivity(in); }}); }
答案 0 :(得分:0)
不要将GoogleMap.setOnInfoWindowClickListener
放入循环中。它会覆盖您之前设置的任何侦听器。
在您检索GoogleMap
的引用之后立即设置一次,并区分onInfoWindowClick
内的标记。