2013-04-07 15 views
9

Korzystanie z map V2.Nie można uzyskać usługi GoogleMap OnMarkerClickListener do pracy

Mam to wszystko w zasadzie działa, w tym dodawanie znaczników.

Jednak trzeba podjąć działania, gdy znacznik jest na podsłuchu, więc już zainstalowany program obsługi:

thisMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 

    @Override public boolean onMarkerClick(Marker marker) { 
     // Take some action here 
     return true; 
    } 

} 
); 

Jedynym problemem jest - onMarkerClick() nigdy nie jest wywoływana w ogóle. Nie widzę powodu - próbowałem stworzyć słuchacza, gdy mapa została oryginalnie stworzona, a także po wstawieniu znacznika, bez różnicy.

?

Odpowiedz

-1

Zarządzane, aby uruchomić go za pomocą OnInfoWindowClickListener zamiast tego. Nie wiem, dlaczego nie reagowałby na kliknięcie znacznika.

6

Działa to dobrze dla mnie:

GoogleMap mMap; 
Marker marker_1; 

Po zainicjowaniu mapę, dodać detektor do niego.

mMap.setOnMarkerClickListener((OnMarkerClickListener) this); 

I nazywają to

/** 
* handle marker click event 
*/  
@Override 
public boolean onMarkerClick(Marker marker) { 
    // TODO Auto-generated method stub 
    if(marker.equals(marker_1)){ 
     Log.w("Click", "test"); 
     return true; 
    } 
     return false;   
} 

Jeśli to zwraca „true”, zdarzenie click jest obsługiwane properly.If kliknięciu znacznika i return false będzie po prostu pojawiają się okno informacyjne jak zwykle .

Według dokumentacji Android, który jest markerem kliknięciu Zwraca true jeśli słuchacz strawił zdarzenie (to domyślne zachowanie nie powinno mieć miejsca), false (to domyślne zachowanie powinno nastąpić). Domyślnym zachowaniem kamery jest przejście do mapy i pojawienie się okna informacyjnego .

0

GoogleMap mMap;

użyj:

mMap.setOnMarkerClickListener ((OnMarkerClickListener) tego);

i nie mMap.setOnMarkerClickListener (OnMarkerClickListener);

0

Możesz użyć tego po prostu snipet:

import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener; 

GoogleMap mGoogleMap; 
Marker marker_1; 

W onMapReady (GoogleMap GoogleMap) dodać:

mGoogleMap.setOnMarkerClickListener(new OnMarkerClickListener() { 
     @Override 
     public boolean onMarkerClick(Marker marker) { 

      // TODO Auto-generated method stub 
      if(marker.equals(marker_1)){ 
       Log.w("Click", "test"); 
       return true; 
      } 
      return false; 

     } 
    }); 
Powiązane problemy