Autore Topic: Passaggio di coordinate da una ListView con un intent  (Letto 509 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Passaggio di coordinate da una ListView con un intent
« il: 09 Dicembre 2014, 13:07:06 CET »
0
Salve a tutti!

Io ho il mio layout con una ListView che vado a riempire con dei nomi, al tocco di ogni riga (o di una checkbox all'interno di ogni riga) l'app deve salvarmi le coordinate del luogo in un array di stringhe.
Quando ho finito di scegliere i luoghi che voglio visitare deve passare l'array di coordinate con un intent ad un'altra classe che le estrarrà e userà tali coordinate per costruire un percorso (o almeno mettere dei marker).

Questo è il codice della prima classe (quella con la listView):
Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;

/**
 * Created by adorni on 12/11/2014.
 */

public class Itinerario extends Activity {

    ImageButton back;
    Button partenza;
    ImageView tipo;
    ListView listView;
    String[] Scelti=new String[100];

    int i=0;

    String[] values = new String[]{"Agriturismo Da Redeo","Agriturismo Airone Blu",
            "Az.Agricola Il Filare","Albergo-Ristorante Il capriolo","Albergo-Ristorante Chalet Pineta",
            "B&B Ai Quattro Gatti","B&B Agriturismo Petrarosa","B&B Lino, Libri e Rose",
            "B&B Il Borgo","B&B La Rupe","B&B Case Mazza", "B&B Sommariva",
            "Castagneto","La Corte Bonomini", "B&B Mandala",

            "Museo Storico della Resistenza",
            "Museo Storico dei Lucchetti", "Museo Uomo-Ambiente","Collezione Civica Arte Contemporanea",
            "Casa-Museo Bruno Bricoli (Colibri)", "Pieve di S.Ambrogio","Pieve di Sasso","Pieve di Scurano",

            "Parco Provinciale del Monte Fuso","Lago di Scurano", "Piscina di Campora","Piscina di Scurano",


            "Caseificio Sociale Campora e Sasso","Caseificio S.Cassiano Scurano"
            , "Caseificio Sociale di Urzano","Az. Agricola La Villa","Latteria Sociale di Bazzano",
            "Salumificio Molinetto","Salumificio Delsante Dalmazio & C.","Salumificio S. Ambrogio",
            "Salumificio Rossi & C.","Panificio Monte Fuso","Panificio Bazzano", "Az. Agricola Mazzali Emily","Panificio Mora S.A.S.",


            "Il Capriolo","Chalet Pineta","Trattoria Corradi",
            "Agriturismo La Piana dei Sambuchi","Trattoria Mazzini","Trattoria Tarasconi"
            ,"Locanda Sport","Bar Trattoria da Poldo","Ristorante Pizzeria La Cava",
            "Trattoria La Pieve","Trattoria Pizzeria La Corte","Tana del Luppolo",
            "Ristorante del Parco Monte Fuso","Il Filare",

            "Ufficio Informazioni Turistiche/Parco Monte Fuso","Biblioteca Comunale", "Farmacia Comunale di Scurano","Farmacia Maturo"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.itinerario);

        // Get ListView object from xml
        listView = (ListView) findViewById(R.id.listView);

        BubbleSort(values);

        back=(ImageButton) findViewById(R.id.Back);
        partenza=(Button) findViewById(R.id.parti);

        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

        // Define a new Adapter
        // First parameter - Context
        // Second parameter - Layout for the row
        // Third parameter - ID of the TextView to which the data is written
        // Forth - the Array of data

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.rowmostra,
                R.id.Nome, values);



        // Assign adapter to ListView
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                // ListView Clicked item index
                int itemPosition     = position;

                // ListView Clicked item value
                 Scelti[i]    = (String) listView.getItemAtPosition(position);
                i++;

            }
        });

        partenza.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent SingleItinerarioP = new Intent(Itinerario.this,ItinerarioPersonalizzato.class);
                SingleItinerarioP.putExtra("Nome",Scelti);
                startActivity(SingleItinerarioP);
            }
        });


    }
    private static void BubbleSort(String[] array) {
        String t;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j].compareTo(array[j + 1]) > 0) {
                    t = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = t;
                }
            }
        }
    }
}

e questa è la classe che riceve l'intent (ancora in costruzione):
Codice (Java): [Seleziona]
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;

/**
 * Created by adorni on 09/12/2014.
 */

public class ItinerarioPersonalizzato extends Activity {

    SQLiteDatabase db;
    String[] Nome=new String [100];

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.singleitinerariopersonalizzato);

        Bundle datipassati = getIntent().getExtras();

        for(int i=0;i<100;i++){
            Nome[i] = datipassati.getString("Nome");
        }



    }

}

Io so che questo non è il metodo migliore per fare quello che vorrei fare.... il problema è che mi sto perdendo in un bicchiere d'acqua (soprattutto per quanto riguarda il passaggio delle coordinate) voi avete suggerimenti su come migliorare il codice?

Vi ringrazio tantissimo in anticipo!!