Autore Topic: salvare layout corrente di un fragment x ripristinarlo all prossimo avvio  (Letto 871 volte)

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
ciao ragazzi devo fare un applicazione cosi strutturata.
Ho 4 tasti "ADD"nel layout, se l utente ci clicca appare un menu di scelta, dove l utente sceglie la view da inserire. Una volta scelta la view il pulsante "add" sparisce e a posto del pulsante "add" appare la view scelta.
Considerati che sto lavorando con i fragment e ho piu pagina con i 4 tasti "add".
Fin qua ci sono riuscito a realizzare il tutto.
Il problema è quando viene riavviata l applicazione , il sistema ricarica i layout di default con i 4 tasti add. Io vorrei che l utente rivedesse i layout impostati come l ultimo avvio. Sapete dirmi qualche dritta ?
ero indeciso se usare sharedpreferences o database, cosa mi consigliate ?
ricordate che ho piu pagine nellamia applicazione , di cui voglio salvare la configurazione ( sto lavorando con le tab fragment)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:salvare layout corrente di un fragment x ripristinarlo all prossimo avvio
« Risposta #1 il: 31 Agosto 2012, 12:09:17 CEST »
0
credo che ti conviene usare le sharedpreferences in quanto devi salvare solo un dato... ti salvi l'id della view, ed e fatta... all'avvio dell'applicazione vai a pescare l'id dalle sharedpreferences e ti carichi la view.... usare il databse ti rende solamente il lavoro piu lungo e complicato

Offline esoni

  • Utente junior
  • **
  • Post: 102
  • Respect: 0
    • Mostra profilo
Re:salvare layout corrente di un fragment x ripristinarlo all prossimo avvio
« Risposta #2 il: 31 Agosto 2012, 12:33:34 CEST »
0
esempio ho 4 bottoni nella shared preference metto 4 interi, uno per bottone. in questi interi registro l id della view , e al momento della createview leggo questi 4 id per impostare nello stesso modo precedente il layout giusto ?

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:salvare layout corrente di un fragment x ripristinarlo all prossimo avvio
« Risposta #3 il: 31 Agosto 2012, 14:25:09 CEST »
0
no, ne salvi solo uno...
ovvero:
Codice: [Seleziona]
SharedPreferences prefs;
prefs = getSharedPreferences(..., MODE_PRIVATE);
Editor prefsEditor = prefs.edit();
prefsEditor.putInt("idView", id_della_view_da_salvare);
prefsEditor.commit();

e quando carichi farai
Codice: [Seleziona]
setContentView(prefs.getString("idView", ""));
credo che funzioni

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:salvare layout corrente di un fragment x ripristinarlo all prossimo avvio
« Risposta #4 il: 31 Agosto 2012, 15:35:45 CEST »
0
Stai usando i Fragment e salvi lo stato dei Fragment con le SharedPreferences, pessima soluzione, se hai più di uno stesso Fragment attivo i dati salvati si sovrascriveranno.

Bisogna studiare bene le API di Google sui Fragment, è già tutto predisposto basta usarlo, è più efficiente e senza effetti collaterali.

Se non fai un "setRetainInstance(true)" nel codice del tuo Fragment nel metodo "onSaveInstanceState" salvi i dati nel Bundle, nella "onCreate" ripristini lo stato dal Bundle se non è nullo.

Comunque basta cercare con quale motore di ricerca, ci sono molti esempi a riguardo.
adb logcat | tee /tmp/logcat | grep TAG