Il Forum è consultabile solo in modalità lettura. Per domande o consigli iscriviti al nostro GRUPPO FACEBOOK / COMMUNITY cliccando qui

Scrittura e lettura file XML

Discussione in 'Development' iniziata da trev, 5 Apr 2013.

  1. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    Salve ragazzi sono un nuovo utente alle prime armi con Android. Sicuramente sbaglierò ad esporre il mio problema in questa sezione del forum e per questo mi scuso in anticipo. Comunque il mio problema è questo:
    devo popolare uno spinner o una listview con i dati presenti in un file XML in locale.
    Come posso fare?
    Grazie
     
  2. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    per favore potreste aiutarmi? datemi una mano almeno per iniziare
    grazie
     
  3. Androidetto

    Androidetto Baby Droid

    Iscritto:
    13 Apr 2013
    Messaggi:
    11
    "Mi Piace":
    2
    A Morissio piace questo elemento.
  4. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    Allora messo il mio file da parsare nella cartella res/raw,poi ho fatto il parser del file xml. Adesso mi chiedo come posso fare a modificarlo?Ci vorrei aggiungere altre righe in fondo al documento. Qualcuno può aiutarmi?
    grazie saluti
     
  5. Androidetto

    Androidetto Baby Droid

    Iscritto:
    13 Apr 2013
    Messaggi:
    11
    "Mi Piace":
    2
    Una volta che hai il riferimento al file ( lo ottieni con getResources()...), puoi leggerlo, modificarlo e scriverlo come qualsiasi altro file. Puoi trovare qualche spiegazione sulla lettura/scrittura di file QUI
     
    A Morissio piace questo elemento.
  6. skinflint

    skinflint Baby Droid

    Iscritto:
    6 Dic 2012
    Messaggi:
    4
    "Mi Piace":
    0
    Ciao
    è la prima volta che scrivo su questo forum, ma visto che ho lavorato ad un'app che utilizzava i file XML ti posso dare alcune dritte.
    Nel mondo dei parser, prima di tutto bisogna distinguere la differenza tra la tecnica SAX (Simple Api for XML) e DOM (Document Object Model).
    La tecnica SAX sfrutta gli eventi (apertura di un tag, lettura di un attributo....) e permette di leggere un documento ma non di crearne nuovi o modificarli (al contrario ha una gestione semplificata per la lettura).
    La tecnica DOM permette di vedere il documento come una gerarchia di elementi annidati per formare alberi di oggetti. Un parser DOM costruisce in memoria l'albero degli elementi del documento e lo restituisce all'applicazione sotto forma di oggetto. Questa tecnica ha il vantaggio di permettere la scrittura e modifica del file XML, ma al contrario è più lenta e più onerosa in termini di memoria.

    Detto questo, valuta la tecnica utilizzata per scrivere il tuo parser e ricorda che quando si parla di XML ci sono molte altre cose da valutare (validazione del file ed eccezzioni giusto per dirne 2).
     
  7. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    Ciao morisso grazie innanzitutto della risposta. Allora io devo fare un'app che prevede queste funzionalità:
    -devo prendere un file dalle risorse di Android res/raw il cui formato è .xml (è un file abbastanza grande che contiene vari dati che mi serviranno in seguito)
    -visto che non lo posso modificare (perchè fa parte delle risorse),questo file .xml va salvato sulla scheda sd
    -una volta salvato sulla scheda sd lo devo leggere per ricavarne i dati che andranno a popolare i mie spinner

    Questa è solo una parte del progetto, quale sarebbe il modo migliore di procedere?
    grazie
     
  8. Morissio

    Morissio Guest

    Per essere precisi io non ti ho risposto :p anche perchè di programmazione non so una beata.... cippa. :joy:
    Vedrai che qualcuno come Androidetto e/o skinflint ti aiuteranno ;)
     
  9. skinflint

    skinflint Baby Droid

    Iscritto:
    6 Dic 2012
    Messaggi:
    4
    "Mi Piace":
    0
    Premesso che molto della gestione dei file di Android è la stessa tecnica di gestione file di Java puro, forse c'è un errore a monte. Perché il file è nella cartella res/raw?
    Se comunque questa è metodologia che vuoi usare, la soluzione che sembra più avvicinarsi al tuo problema è quella di realizzare un parser DOM del file memorizzato nella SD e da questo ricavare i dati per i tuoi Spinner.
     
  10. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    Ciao,allora il file .xml dalla quale prelevare i dati lo prendo da un sito internet. Se però,non ho la possibilità di una connessione,non posso popolare i miei spinner,quindi ho pensato che andava messo in questa cartella. Non so se il ragionamento che ho fatto è giusto o meno.
    Secondo te quindi la migliore soluzione è quella di creare un parser DOM del file ,per poi memorizzarli dentro un dbsqlite?
     
  11. skinflint

    skinflint Baby Droid

    Iscritto:
    6 Dic 2012
    Messaggi:
    4
    "Mi Piace":
    0
    Se il file xml lo prelevi da un sito internet, te lo puoi salvare direttamente e utilizzarlo in caso non ci sia la connessione, perché andarlo a salvare in res/raw o utilizzare un DB?
     
  12. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    Forse non ho capito io scusami,ma se non ho una connessione ad internet e non ho nemmeno il file xml e nemmeno il db come faccio a popolare gli spinner?
     
  13. skinflint

    skinflint Baby Droid

    Iscritto:
    6 Dic 2012
    Messaggi:
    4
    "Mi Piace":
    0
    una volta che hai ricevuto il file dal sito te lo puoi salvare eventualmente per utilizzarlo nel caso non ci fosse connessione, ma non vedo il motivo perché ti debba salvare i dati su un DB (non conosco le altre specifiche dell'APP).
     
  14. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    ciao allora ti spiego nel dettaglio cosa devo fare:
    -scaricare questo file xml
    -questo mi servirà per popolare gli spinner
    -inviare eventuali modifiche al sito
    -ogni volta che accedo alla mia applicazione viene controllata (se c'è la connessione) la versione del file che c'ho io con quella del sito. Se il file del sito è stato modificato provvedo a riscaricarlo.

    Mi sa che farò come dici tu comunque.
     
  15. trev

    trev Baby Droid

    Iscritto:
    5 Apr 2013
    Messaggi:
    9
    "Mi Piace":
    0
    Salve ragazzi per favore rispondetemi,come faccio a prelevare un file xml per salvarlo nella memoria del telefono?
    grazie anticipatamente