Autore Topic: Perdita di dati in tabHost dopo rotazione dispositivo e cambio tag  (Letto 358 volte)

Offline campusantu

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Linux Ubuntu
0
Ciao ragazzi, ho trovato un bug nella mia applicazione e non riesco a capire dove sbaglio.
L'attività principale è una tabActivity contenente un certo numero di tab (tra 1 e 6 a seconda delle impostazioni) basate su una Activity modello, con alcuni controlli textEdit, da una tab all'altra cambia solo il contenuto di questi (memorizzato per ora dalle preferenze dell'applicazione). Un listener sui controlli mi setta una variabile di controllo a true quando il testo di uno dei controlli è stato modificato, così che in onPause si salvi il contenuto aggiornato dei controlli (ma solo se sono stati modificati). Il tutto funziona correttamente in condizioni "normali".
Il bug si presenta sia occasionalmente (non ho capito a causa di cosa esattamente) che quando si ruota il dispositivo mentre si è selezionata una tab diversa dalla prima. Dopo la rotazione se si torna alla prima tab si nota che il contenuto è stato sovrascritto da quello della tab precedentemente selezionata, non riesco a capire perché.
Durante la creazione della tabActivity sono costretto a usare
Codice (Java): [Seleziona]
tabHost.setCurrentTab(0); // It's a bug, it avoids crashes
tabHost.clearAllTabs();
altrimenti il programma crasha su questo punto.
Qualche idea? Cosa può essere a causare l'errore? Se serve qualche informazione in più chiedete che la posto, ora come ora non so esattamente dove sia il problema quindi evito di postare un sacco di codice per niente.

P.S. Visto il fatto che sono identiche tutte le tab a parte il contenuto dei controlli, mi era venuto anche in mente di fare una sorta di finta tabActivity, nel senso che si cambia la tab ma l'activity visualizzata sia sempre la stessa, solo aggiornando via via i contenuti..

Grazie per l'aiuto :)