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