Autore Topic: Logica rimozione ed aggiunta markers ad una lista  (Letto 662 volte)

Offline Elmvor

  • Utente normale
  • ***
  • Post: 166
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Logica rimozione ed aggiunta markers ad una lista
« il: 28 Gennaio 2014, 17:18:01 CET »
0
Salve. Nella mia app io calcolo il percorso (tramite le google directions api) tra i vari markers che l'utente inserisce con il semplice
click sulla mappa. Incollo le poche istruzioni che riguardano la gestione di questi markers:

Codice: [Seleziona]
private ArrayList<Marker> mMarkersList;

public void onMapClick(LatLng latLng) {
        if(mCurrentCircle == null) {
            //Aggiungiamo un Marker
            Marker m = mGoogleMap.addMarker(new MarkerOptions().position(latLng));
            mMarkersList.add(m);
        }

    public boolean onMarkerClick(Marker marker) {
        marker.remove();
        mMarkersList.remove(marker);
        return true;
    }

Poi scorro la lista per calcolare il percorso tra i marker. Il problema nasce quando l'utente magari mentre mette i marker cambia idea e vuole cambiarne la posizione di uno o più. I marker aggiunti vanno a mettersi alla fine della lista e NON nella posizione in cui è stato rimosso l'ultimo marker. Mi spiego meglio. Ad esempio ho aggiunto questi marker:

[1][2][3][4]

L'utente non è soddisfatto della posizione del terzo marker, allora lo toglie:

[1][2][ ][4] che però per il comportamento delle liste (correggetemi se sbaglio) il marker [4] va al posto dell'ex marker [3], quindi
otteniamo:

[1][2][4]

Quando l'utente aggiunge il marker nella posizione da lui ritenuta migliore dunque, otteniamo questa cosa:

[1][2][4][5], quando invece dovrei avere [1][2][5][4]!

Come posso fare?

Ps: per non parlare del fatto che l'utente potrebbe decidere di rimuoverne più di uno T_T

« Ultima modifica: 28 Gennaio 2014, 17:20:37 CET da Elmvor »