我正在开发一个使用 OSMbonuspacket 的应用。我在地图上添加了带描述的标记。单击其中一个标记时,将显示说明框。
现在我想在点击标记时调用另一个函数。假设我要展示一个Toast。所以我添加了以下setOnMarkerClickListener()
函数:
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show();
return false;
}
});
单击标记时显示Toast。但是,不再显示说明框。我想我会覆盖默认行为。有了这个功能。我制作了一个带有Google Maps集成的应用程序,并做了同样的事情,没有任何问题。
有没有人知道如何使用OSMbonuspacket完成此任务?
答案 0 :(得分:2)
osmdroid中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;
}
});