L'utente potrebbe rimuovere anche più markers. Sto creando un'altra lista dove mettere le posizioni:
codice:
private ArrayList<Marker> mMarkersList;
private ArrayList<Integer> removedMarkersPositions;
Aggiunta
codice:
//Aggiungiamo un Marker
Marker m = mGoogleMap.addMarker(new MarkerOptions().position(latLng));
if(!removedMarkersPositions.isEmpty()) {
mMarkersList.add(removedMarkersPositions.get(0),m);
removedMarkersPositions.remove(0);
}
else {
mMarkersList.add(m);
}
Rimozione
codice:
marker.remove();
removedMarkersPositions.add(mMarkersList.indexOf(marker));
mMarkersList.remove(marker);
Però crea ancora qualche incongruenza.
Update metodo rimozione
codice:
public boolean onMarkerClick(Marker marker) {
removedMarkersPositions.add(mMarkersList.indexOf(marker));
mMarkersList.remove(marker);
marker.remove();
return true;
}
Update metodo aggiunta
codice:
Marker m = mGoogleMap.addMarker(new MarkerOptions().position(latLng));
if(mMarkersList.isEmpty() && !removedMarkersPositions.isEmpty()) {
removedMarkersPositions.clear();
}
if(!removedMarkersPositions.isEmpty() && !mMarkersList.isEmpty()) {
mMarkersList.add(removedMarkersPositions.get(0),m);
removedMarkersPositions.remove(0);
}
else {
mMarkersList.add(m);
}
Così non da problemi, ma se l'utente rimuove più di un markers deve stare attento all'ordine e alla
posizione dove li va a rimettere..
Oddio dipende anche da come li rimuove.. è difficile farne il debug T_T