Ciao Ho un'attività con due frammenti.Ripristino Android istanza dello stato di un frammento che si trova nel backstack
- frammento A
frammento B
- Frammento A ha un'EditText e ListView.
- Una volta immesso qualcosa nel testo EditText e premuto Immettere, popolare il ListView.
- Ora il frammento A di ListView è popolato con i dati.
- Cliccando un qualsiasi elemento del ListView di frammento A invierà all'utente di frammento B
- A questo punto Sto sostituendo frammento A con frammento B
- Così, quando l'utente preme il pulsante di nuovo torna a frammentare A
Ora il problema è se l'utente è in frammento B e cambiamenti di configurazione si verificano come la rotazione dello schermo ecc più di una volta poi che il mio mio ListView è vuoto perchè mio arraylist è nullo.
nota che sto utilizzando onSavedInstanceState nel frammento A e B. frammento Se il mio frammento corrente è avvengono frammento A e di configurazione cambia allora non ci sono problemi di ripristino dello stato dal momento che in onCreateView Mi è toccato l'arraylist dal fascio.
Conosco il motivo per cui il mio arraylist è nullo quando ritorno dal frammento B al frammento A che è nel backstack in precedenza. Quando il frammento A è nel backstack, l'unico metodo che viene chiamato è onSaveInstanceState, quindi dopo la prima modifica cambiare il mio campo arraylist è nullo in quanto non potrei assegnare il mio arraylist memorizzato nel pacchetto savedInstateState al campo arraylist.
Non voglio utilizzare Android: attributo configchanges nel mio manifest.
La mia domanda è come posso ripristinare lo stato di un frammento che si trova nel backstack.
Basta memorizzare il tuo arralist nel metodo 'onSavedInstance()'. Quindi controlla il metodo 'onCreateView()' se 'onSavedInstance' non sarà nullo, quindi recuperi il tuo arraylist. – Piyush
Non funziona nel mio caso. Il metodo dichiarato funziona per saveState quando cambia l'orientamento del dispositivo, ma il mio problema sta tornando dal frammento B – krishna
Quando si esegue la prima chiamata 'onStart()', controllare se il proprio arraylist non è nullo, quindi impostare l'adattatore. – Piyush