Originariamente inviato da November17
Ciao ragazzi,
ho un problemone: sto scrivendo un parser di un file GPS (XML per la memorizzazione di waypoint su dispositivi GPS): devo scandire il file e memorizzare latitudine e longitudine di ogni waypoint.
La logica è la seguente: scandisco il file alla riceca del tag "trkpst" che ha due attributi, lat e lon: memorizzo i due valori in un array di stringhe lungo due, e poi aggiungo questo array di stringhe un un arraylist.
Il problema è che, quando stampo il contenuto dell'arraylist, mi stampa n volte (con n=size dell'arraylist) l'ultimo valore di lat e lon rilevato!!
I pezzi di codice sono i seguenti:
codice:
ArrayList cont= new ArrayList();
String[] record=new String[2]; //trkpt ha solo 2 attributi
String[] rec=new String[2];
if (elemento.toString().equals("trkpt")){
for(int i=0; i < attributi.getLength(); i++) {
record[i]=attributi.getValue(i).toString();
}
System.out.println("test "+ record[0].toString() +" " + record[1].toString());
cont.add(record);
System.out.println("finito di aggiungere");
}
Sembbrerebbe funzionare perchè ogni volta che stampa la riga "test...." i valori di lat e lon sono corretti;
codice:
public void printAL(){
for (int i=0; i<cont.size();i++){
rec= (String[]) cont.get(i);
System.out.println("Lat: " + rec[0].toString() + " Long: " +rec[1].toString());
}
}
Questo è il pezzo che stampa n volte (con n=cont.size) le ultime lat e lon.
Potete darmi una mano?
Grazie
Graziano