Android 如何在不覆盖默认行为的情况下扩展OSMbonuspacket标记的setOnMarkerClickListener?

Android 如何在不覆盖默认行为的情况下扩展OSMbonuspacket标记的setOnMarkerClickListener?,android,onclicklistener,openstreetmap,osmdroid,Android,Onclicklistener,Openstreetmap,Osmdroid,我正在开发一个应用程序,它使用了OSMBonus数据包。我在地图上添加了带有描述的标记。单击其中一个标记时,将显示“说明”框 现在我想在点击标记时调用另一个函数。比如说,我想干杯。因此,我添加了以下setOnMarkerClickListener()函数: marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marke

我正在开发一个应用程序,它使用了OSMBonus数据包。我在地图上添加了带有描述的标记。单击其中一个标记时,将显示“说明”框

现在我想在点击标记时调用另一个函数。比如说,我想干杯。因此,我添加了以下
setOnMarkerClickListener()
函数:

marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker, MapView mapView) {
        Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show();
        return false;
    }
});
这将在单击标记时显示土司。但是,“说明”框不再显示。我猜我正在覆盖默认行为。具有此功能。我曾经做过一个与谷歌地图集成的应用程序,并且做了同样的事情,没有任何问题


有人知道如何使用OSMbonuspacket实现这一点吗?

在osmdroid中默认单击listener for Marker如下所示:

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;
    }
});
因此,您可以像这样覆盖侦听器:

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;
    }
});

osmdroid中标记的默认单击侦听器如下所示:

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;
    }
});
因此,您可以像这样覆盖侦听器:

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;
    }
});

尝试返回super.OnMarkerClick(marker,mapview)@spy,谢谢你的建议。我尝试返回
super.onMarkerClick(marker,mapView)而不是我的
inMarkerClick(…)
函数中的
false
。你就是这个意思,对吗?但是编译器说这个函数不存在:(尝试返回super.OnMarkerClick(marker,mapview)@spy,谢谢你的建议。我尝试在markerclick(…)中返回
super.OnMarkerClick(marker,mapview);
而不是
false
函数。这就是你的意思,对吗?但是编译器说这个函数不存在:(