2012-12-28 20 views
1

您好,我有一个有很多标记的地图。当我将标记添加到地图中时,我想添加一个onInfoWindowClick监听器给每个标记与单个数据。我想用onInfoWindowClick Listener加载一个活动信息的标记信息。Android Google Maps API v onInfoWindowClick触发所有侦听器的活动创建

该代码无法正常工作。当创建活动时,所有听众同时被触发,当我点击infoWindow时,什么都不会发生。

private void addMarkerToMap(double lat, double lng, String eventTitle, 
      String eventDiscribtion) { 
     Marker currentMarker = myMap.addMarker(new MarkerOptions() 
       .position(new LatLng(lat, lng)).title(eventTitle) 
       .snippet(eventDiscribtion)); 

     onInfoWindowClick(currentMarker); 
    } 

    @Override 
    public void onInfoWindowClick(Marker marker) { 

      Intent nextScreen = new Intent(MapsActivity.this, 
        EventActivity.class); 
      nextScreen.putExtra("userId", "" + userId); 
      nextScreen.putExtra("eventId", "" + eventId); 

      startActivityForResult(nextScreen, 0); 

    } 

回答

7

您将您的GoogleMap对象内实施的onclick行为(MYMAP)

myMap.setOnInfoWindowClickListener(
    new OnInfoWindowClickListener(){ 
    public void onInfoWindowClick(Marker marker){ 
     Intent nextScreen = new Intent(MapsActivity.this,EventActivity.class); 
     nextScreen.putExtra("userId", "" + userId); 
     nextScreen.putExtra("eventId", "" + eventId); 

     startActivityForResult(nextScreen, 0); 
    } 
    } 
) 
+0

感谢那些我在这一刻发现它的作品,但现在我有另一个问题。收听者用独立数据创建。我只获得每个标记中的最后一个标记信息。 –

+2

我已经通过将标记存储在活动级别定义的散列图<标记,对象>中来解决了这个问题。这样,当监听器被调用时,我可以抓住相关的对象:'MyObject obj = myHashMap.get(marker);' – RorschachDev

+0

@DotProductSoft嗨,我正在做同样的认识...这里是我的代码 –

相关问题