CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 12
Discussione:

leggere e scrivere file xml?

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Feb 2010
    Località
    Fregene - Forte Dei Marmi
    Messaggi
    46

    Ringraziamenti
    9
    Ringraziato 0 volte in 0 Posts
    Predefinito

    leggere e scrivere file xml?

    ciao ragazzi... sto cercando di far scrivere e leggere un file xml (messo in /res/raw) e di struttura molto semplice:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <nodo1>DA LEGGERE</nodo1>
       <nodo2>DA LEGGERE</nodo2>
       <nodo3>DA LEGGERE</nodo3>
    </root>
    il file xml sarà composto al massimo da 3 nodi (forse solo 2) e quello che mi interessa leggere e scrivere è contenuto tra i nodi.
    come posso fare?
    grazieeeeeeeee!!!


    [EDIT]
    allora: sono riuscito a far leggere e parsare il file...
    dall'activity principale passo un inputstream(il risultato di R.raw.data) alla facade che gestirà le richieste di lettura e scrittura, richiamando il "DAO".
    codice:
    /** nell'activity principale, in fase di inizializzazione */
    fc.init(this.getResources().openRawResource(R.raw.data));
    questo inputstream viene passato poi alla classe responsabile della lettura/scrittura dei dati.
    ora, mi chiedevo, per scrivere il file, come posso fare? o meglio, per scrivere il contenuto dei nodi!
    pensavo di farlo riscrivere tutto, ma mi sembra un pochino brutta come cosa LOL
    in caso di un albero più annidato sarebbe follia!




    P.S.
    comunque sto incontrando alcune difficoltà legate alla oop... o meglio, non riesco a dividere le responsabilità senza creare tutte classi che estendono activity (anche quando non mi servono proprio)... ad esempio il mio dao non è un activity, e quindi mi sono dovuto arrangiare impostando l'attributo is (inputstream), cosa che non mi piace molto, perchè mi rimane aperto fino a quando non arriva la chiamata a loadData(), avrei preferito fargli trovare file e tutto proprio a lui... altrimenti cambio sistema di memorizzazione (ad esempio in favore di sqlite) e mi trovo a riscrivere mezzo programma solo perchè cambiano le interfacce (cosa ORRIBILE)...
    leggendo Hello. Android, non ne sono venuto a capo... -.-''
    appena lo scannerizzo posto il diagramma delle classi così magari pongo meglio il problema
    [/EDIT]
    Immagini allegate
    Ultima modifica di BobArctor; 20-02-10 alle 12:20

  2.  
  3. #2
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Per scrivere il file credo sia molto piu facile riscriverlo interamente che scriverne solamente un pezzo ..

    Perciò Mettitela via che devi perforza riscrivere tutto.

    Per quanto riguarda il tuo problema oop beh non ho esattamente capito il tuo problema.

    Twitter @veke87

  4. #3
    Baby Droid


    Registrato dal
    Feb 2010
    Località
    Fregene - Forte Dei Marmi
    Messaggi
    46

    Ringraziamenti
    9
    Ringraziato 0 volte in 0 Posts
    Predefinito

    allora, innanzitutto grazie per la risposta...
    quello che intendevo, per il problema oop, è:
    dall'activity main, riesco ad accedere al metodo getResources(), che mi permette di raggiungere il file xml (in questo caso).
    da altre classi che non estendono Activity, come riesco ad ottenere quei riferimenti?

    la domanda diventa:
    come posso far leggere e scrivere file (di testo, senza per ora complicarmi la vita) da classi che non siano activity? c'è una qualche classe statica che mi permette di ottenere dei riferimenti?
    sono sicuro che c'è un metodo diverso rispetto a quello che ho usato per leggere un file... :S
    se volete più chiarezza allego il sorgente...

  5. #4
    Androidiano


    Registrato dal
    May 2009
    Messaggi
    250

    Ringraziamenti
    2
    Ringraziato 30 volte in 23 Posts
    Predefinito

    Scusa ma perchè non usi shared preferences/database/SD?
    Tra l'altro non vedo come possa scrivere un file che si trova nelle res

  6. #5
    Baby Droid


    Registrato dal
    Feb 2010
    Località
    Fregene - Forte Dei Marmi
    Messaggi
    46

    Ringraziamenti
    9
    Ringraziato 0 volte in 0 Posts
    Predefinito

    infatti ho appena risolto leggendo e scrivendo su sd... grazie!!!
    è da (molto) poco che utlizzo l'sdk di android, e non conosco ancora le differenze con java utilizzato fin'ora.
    utilizzare un db per memorizzare 2 stringhe mi sembra eccessivo, e le shared preferences devo ancora studiarle... ^^
    volevo utilizzare un file in res/raw perchè sapevo come "acchiapparlo", non sapendo di non poterlo poi riscrivere.
    grazie ancora!

    Michele

  7. #6
    Senior Droid


    Registrato dal
    Apr 2009
    Messaggi
    309

    Ringraziamenti
    2
    Ringraziato 72 volte in 32 Posts
    Predefinito

    Quote Originariamente inviato da BobArctor Visualizza il messaggio
    infatti ho appena risolto leggendo e scrivendo su sd... grazie!!!
    è da (molto) poco che utlizzo l'sdk di android, e non conosco ancora le differenze con java utilizzato fin'ora.
    utilizzare un db per memorizzare 2 stringhe mi sembra eccessivo, e le shared preferences devo ancora studiarle... ^^
    volevo utilizzare un file in res/raw perchè sapevo come "acchiapparlo", non sapendo di non poterlo poi riscrivere.
    grazie ancora!

    Michele
    Piuttosto di un file su sd, ti consiglio di usare shared preferences, sono comodissime!

    Per scrivere:

    codice:
    private static final String savePath="path";
    private SharedPreferences sharedPref;
    private SharedPreferences.Editor editor;
    
    public void putStringFromPreferences(String stringaDaInserire){
    
    sharedPref = this.getSharedPreferences(TUACLASSE.savePath, Activity.MODE_WORLD_WRITEABLE);
    editor=sharedPref.edit();
    
    editor.putString("CHIAVESTRINGA", stringaDaInserire);
    editor.commit();
    }
    Per leggere ancora più easy:

    codice:
    private static final String savePath="path";
    
    public String readString(){
    sharedPref = this.getSharedPreferences(TUACLASSE.savePath, Activity.MODE_WORLD_WRITEABLE);
    
    return sharedPref.getString("CHIAVESTRINGA", "TestoDiDefault");
    
    }
    Spero ti sia utlie!
    Developer of Briscola and Scopa4Android for android!

  8. Il seguente Utente ha ringraziato Fatal1ty per il post:

    BobArctor (14-03-10)

  9. #7
    Baby Droid


    Registrato dal
    Feb 2010
    Località
    Fregene - Forte Dei Marmi
    Messaggi
    46

    Ringraziamenti
    9
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Grazieee!!!
    avevo risolto con l'xml, ma ora procedo con le shared preferences, e lascio il salvataggio dell'xml come opzione, dato che potrebbe servirmi per un'altra applicazione che sfrutta quelle info!

  10. #8
    Androidiano


    Registrato dal
    Oct 2009
    Messaggi
    97

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Se proprio proprio ti serve (a te o anche altri che leggono questo post) usare un file XML (o anche altri tipi di file) sul cellulare, da poter modificare, ti consiglio di crearti un content provider e salvarci il file dentro.
    Oltre al tempo che si "perde" a fare il provider bisogna sapere che, ci sono classi che aiutano nella "lettura", ma non nella "scrittura", per cui o ci si fa una libreria o la si cerca su internet.
    Ma visto che puoi usare le preferences, usa quelle.

  11. #9
    Baby Droid


    Registrato dal
    Feb 2010
    Località
    Fregene - Forte Dei Marmi
    Messaggi
    46

    Ringraziamenti
    9
    Ringraziato 0 volte in 0 Posts
    Predefinito

    via di preferences!!!

  12. #10
    Baby Droid


    Registrato dal
    Feb 2010
    Località
    Fregene - Forte Dei Marmi
    Messaggi
    46

    Ringraziamenti
    9
    Ringraziato 0 volte in 0 Posts
    Predefinito

    piccola domanda...
    posso ottenere le shared preferences (qui ottenute con il metodo getSharedPreferences(...) in una classe che non estende Activity?
    (e senza passargli il riferimento...)

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy