2013-01-14 6 views

Odpowiedz

16

Tak.

Aby określić znacznik jest zaznaczony, dodać OnInfoWindowClickedListener do GoogleMap:

//mMap is an instance of GoogleMap 
mMap.setOnInfoWindowClickListener(getInfoWindowClickListener()); 

zastąpić metodę onInfoWindowClicked() wewnątrz OnInfoWindowClickListener:

public OnInfoWindowClickListener getInfoWindowClickListener() 
{ 
    return new OnInfoWindowClickListener() 
    {  
     @Override 
     public void onInfoWindowClick(Marker marker) 
     { 
      Toast.makeText(getApplicationContext(), "Clicked a window with title..." + marker.getTitle(), Toast.LENGTH_SHORT).show(); 
     } 
    };  
} 

i śledzić wybranego markera , być może ze zmienną instancji.

Aby wybrać znacznik programowo, trzeba zachować listę wszystkich markerów, a następnie uzyskać uchwyt na jednym i nazywają showInfoWindow(), podobny do tego:

//markerList is just a list keeping track of all the markers you've added 
//to the map so far, which means you'll have to add each marker to this 
//list as you put it on the map 
Marker marker = this.markerList.get(someObjectYoureShowingAMarkerFor.getId()); 

if(marker != null) 
{ 
    marker.showInfoWindow(); 
} 
+0

Właśnie tego potrzebowałem, dzięki! – noisecapella

1

można użyć OnMarkerClickListener.

googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
     @Override 
     public boolean onMarkerClick(Marker marker) { 
      Toast.makeText(getApplicationContext(), "Clicked a marker with title..." + marker.getTitle(), Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 
Powiązane problemy