2

嗨我正在使用google android maps v2並向地圖添加一堆標記,但是我需要將其他數據添加到標記對象以便稍後在onInfoWindowClick函數中調用。Android Google Maps在InfoWindowClick上唯一標識標記

我目前有一個MarkerManager單例類,它在onInfoWindowClick函數內維護一個場所併發列表,我需要通過MarkerManager的某種形式的鍵來記住它。

看來,標記是靜態的最終,不能擴展,所以我有點卡住如何做到這一點。

感謝,

安迪

+0

也許下次放一些代碼不會得到這個標記。 – yams

回答

15

您可以創建一個HashMap:

Map<Marker, YourCustomObject> theMap; 

然後添加標記的按鍵:

Marker m = mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.whatever)).position(new LatLng(mLat, mLong))); 
theMap.put(m, yourCustomObjectInstance); 

最後,在你的信息窗口提供商,你可以通過提供給getInfoWindow函數的標記檢索您的對象灰色':

mMap.setInfoWindowAdapter(new InfoWindowAdapter() { 
    @Override 
    public View getInfoWindow(Marker marker) { 
     YourCustomObject yourCustomObjectInstance = theMap.get(marker); 
    } 
+0

非常感謝您的快速回復:) – Garbit

+0

我沒有結束使用最後一部分(setinfowindowadapter)我只是使用標記作爲哈希映射的參考,並拉回我的對象​​。這有什麼原因會成爲問題嗎?垃圾收集? – Garbit

+0

不,我以爲你需要他們在你的自定義窗口中。我注意到它現在是'onInfoWindowClick'。一樣 –