2016-12-13 52 views
0

我正在使用一個應用程序,該應用程序使用OSMbonuspacket。我在地圖上添加了帶有說明的標記。點擊其中一個標記時,會顯示說明框。如何在不覆蓋默認行爲的情況下展開OSMbonuspacket標記的setOnMarkerClickListener?

現在我想在標記上點擊時調用另一個函數。假設我想展示一個敬酒。所以我增加了以下功能setOnMarkerClickListener()

marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker, MapView mapView) { 
     Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show(); 
     return false; 
    } 
}); 

這顯示了吐司點擊標記時。但是,說明框不再顯示。我想我重寫默認行爲。與此功能。我曾經用Google Maps集成過一次應用,並且沒有任何問題地做了同樣的事情。

有沒有人知道如何使用OSMbonuspacket完成此操作?在osmdroid看

+1

嘗試返回super.OnMarkerClick(標記,MapView類) – spy

+0

@間諜,感謝您的建議。我試着在我的'inMarkerClick(...)'函數中返回'super.onMarkerClick(marker,mapView);'而不是'false'。這就是你的意思嗎?但編譯器說這個函數不存在:( –

回答

2

默認點擊監聽器標記這樣的:

protected boolean onMarkerClickDefault(Marker marker, MapView mapView) { 
    marker.showInfoWindow(); 
    if(marker.mPanToView) { 
     mapView.getController().animateTo(marker.getPosition()); 
    } 

    return true; 
} 

的話,你可以重寫你的聽衆是這樣的:

marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker, MapView mapView) { 
     marker.showInfoWindow(); 
     mapView.getController().animateTo(marker.getPosition()); 
     Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show(); 
     return true; 
    } 
});