2013-04-07 127 views
9

使用V2地圖。無法讓GoogleMap OnMarkerClickListener正常工作

知道這一切基本上工作,包括添加標記。

不過,我需要在標記處抽頭,採取行動,所以我安裝了一個處理程序:

thisMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 

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

} 
); 

唯一的問題是 - onMarkerClick()永遠不會被調用。看不到原因 - 試圖在地圖最初創建時以及標記放置後創建偵聽器,沒有區別。

回答

-1

通過使用OnInfoWindowClickListener代替它來管理它。不知道爲什麼它不會響應標記點擊。

6

也能正常工作對我來說:

GoogleMap mMap; 
Marker marker_1; 

初始化地圖後,一個監聽器添加到它。

mMap.setOnMarkerClickListener((OnMarkerClickListener) this); 

並稱之爲

/** 
* 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;   
} 

如果返回「真」,單擊事件正在處理properly.If您點擊標記並返回false它只會彈出信息窗口照常。

根據Android文檔,這是點擊返回true,如果聽衆已經消耗的事件 標記(即不應該發生的默認行爲), 否則爲false (即應該發生的默認行爲)。 默認行爲是讓相機移動到地圖並顯示一個 信息窗口。

0

GoogleMap mMap;

使用這樣的:

mMap.setOnMarkerClickListener((OnMarkerClickListener)本);

而不是 mMap.setOnMarkerClickListener(OnMarkerClickListener);

0

你可以使用這個簡單snipet:

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

GoogleMap mGoogleMap; 
Marker marker_1; 

在onMapReady(GoogleMap的GoogleMap的)加:

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; 

     } 
    });