I have a list of places which are marked in google maps using Markers. I want to select a Marker so that it will highlight with a different color.
I just tested this and it works, just add a Marker reference as an instance variable in order to keep a reference of the last clicked Marker, and each time a new Marker is clicked, set the previous one back to the default color.
You can also check !marker.equals(prevMarker) before setting the Marker to HUE_BLUE, this will allow a subsequent click on the Marker to set the color back to the default color.
Instance variable:
Marker prevMarker;
Click Listener:
mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
aa= marker.getPosition().latitude;
bb=marker.getPosition().longitude;
if (prevMarker != null) {
//Set prevMarker back to default color
prevMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
}
//leave Marker default color if re-click current Marker
if (!marker.equals(prevMarker)) {
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
prevMarker = marker;
}
prevMarker = marker;
return false;
}
});