Add OnMarkerClickListener, added example in test app
This commit is contained in:
@@ -201,6 +201,10 @@ public final class MapView extends FrameLayout implements LocationListener, Comp
|
||||
private OnFlingListener onFlingListener;
|
||||
private OnScrollListener onScrollListener;
|
||||
|
||||
// Used to manage marker click event listeners
|
||||
private OnMarkerClickListener onMarkerClickListener;
|
||||
|
||||
|
||||
//
|
||||
// Properties
|
||||
//
|
||||
@@ -356,6 +360,21 @@ public final class MapView extends FrameLayout implements LocationListener, Comp
|
||||
void onFpsChanged(double fps);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface definition for a callback to be invoked when the user clicks on a marker.
|
||||
*
|
||||
* @see MapView#setOnMarkerClickListener(OnMarkerClickListener)
|
||||
*/
|
||||
public interface OnMarkerClickListener {
|
||||
/**
|
||||
* Called when the user clicks on a marker.
|
||||
*
|
||||
* @param marker The marker the user clicked on.
|
||||
* @return If true the event was handled and the {@link InfoWindow} will not be shown.
|
||||
*/
|
||||
boolean onMarkerClick(Marker marker);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface definition for a callback to be invoked when the displayed map view changes.
|
||||
*
|
||||
@@ -1454,7 +1473,16 @@ public final class MapView extends FrameLayout implements LocationListener, Comp
|
||||
// Need to deselect any currently selected annotation first
|
||||
deselectAnnotation();
|
||||
|
||||
((Marker) annotation).showInfoWindow();
|
||||
Marker marker = (Marker) annotation;
|
||||
boolean handledClick = false;
|
||||
if (onMarkerClickListener != null) {
|
||||
handledClick = onMarkerClickListener.onMarkerClick(marker);
|
||||
}
|
||||
|
||||
if (!handledClick) {
|
||||
marker.showInfoWindow();
|
||||
}
|
||||
|
||||
mSelectedAnnotation = annotation;
|
||||
}
|
||||
}
|
||||
@@ -2340,6 +2368,10 @@ public final class MapView extends FrameLayout implements LocationListener, Comp
|
||||
this.onFlingListener = onFlingListener;
|
||||
}
|
||||
|
||||
public void setOnMarkerClickListener(OnMarkerClickListener onMarkerClickListener){
|
||||
this.onMarkerClickListener = onMarkerClickListener;
|
||||
}
|
||||
|
||||
//
|
||||
// User location
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user