2015-03-19 50 views
-2

我想打開一個新的關於哪個點擊標記的活動。但我不能。因爲標記是自動添加的,我正在從數據庫中獲取座標。那麼如何知道點擊了哪個標記?

如何知道點擊哪個標記?

for(int i=0; i<all.size();i=i+4){  
    // her kaydin id,lat,lng,title bilgisi alinip ArrayListe atiliyor.. 

    Double latDouble = Double.parseDouble(all.get(i+1)); 
    Double lngDouble = Double.parseDouble(all.get(i+2)); 

    map.addMarker(new MarkerOptions().position(new LatLng(latDouble, lngDouble)).snippet(all.get(i).toString()).title(all.get(i+3))); 

回答

0

您可以使用OnMarkerClickListener,但如果你不希望在每個標記的監聽器和信息是標記,你可以使用OnInfoWindowClickListener這樣的:

getMap().setOnInfoWindowClickListener(new OnInfoWindowClickListener() { 
    public void onInfoWindowClick(Marker marker) { 
     // here you have the Marker to start the activity, for example: 
     String url = marker.getTitle(); 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 
    } 
}); 
+1

哦,非常感謝你Jordi,它工作! – user2656110 2015-03-20 05:45:29

0

爲每個添加的標記添加「ID」。

然後,實現OnMarkerClickListener。正如文件建立給出:

「您可以使用OnMarkerClickListener爲偵聽 標記點擊事件要在地圖上設置此監聽器,調用 GoogleMap.setOnMarkerClickListener(OnMarkerClickListener)當用戶點擊 上。標記onMarkerClick(標記)將被調用,標記將作爲參數傳遞。「

您將在OnMarkerClickListener中收到「標記」對象。比較「ID」。

+0

肯定的,但自動給出ID名稱是:m0,m1,m2 ..等等。我不知道哪個是哪個 – user2656110 2015-03-19 09:16:06

+0

最後標記\t addMarker(MarkerOptions選項) 返回標記對象。您需要維護標記ID。 – ashwin1103 2015-03-19 09:55:55

0

如果你知道你的數據的順序,你可以得到標記的順序並匹配它們。 我的意思是,你的第一行數據庫代表了id = 0的標記。 你可以得到像這樣的標記的Id。

int order = Integer.parseInt(marker.getId().substring(1)); 

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { 

     @Override 
     public void onInfoWindowClick(Marker marker) { 

      int order = Integer.parseInt(marker.getId().substring(1)); 
     } 
    }); 
相關問題