Ho difficoltà a capire come creare un semplice DialogFragment per modificare un oggetto (complesso), ad esempio una persona, con nome e cognome e un elenco di indirizzi e-mail composti da un enum (lavoro, casa, ecc.) e l'indirizzo.Android DialogFragment e modifiche di configurazione
Prima di tutto, come faccio a passare correttamente l'oggetto Persona a un DialogFragment? La mia soluzione corrente ha un metodo setPerson (Person person), che viene chiamato dopo la creazione del mio DialogFragment, ma prima di dialog.show(). Funziona ok, fino a quando non avviene una modifica alla configurazione (l'utente ruota lo schermo). Il DialogFragment viene ricreato e il riferimento all'oggetto Person è nullo. So che posso salvare l'istanza utilizzando onSaveInstanceState, ma l'oggetto è complesso e costoso, e il persistere di un oggetto di grandi dimensioni in questo modo sembra uno spreco.
Ho anche provato a disattivare la modifica della configurazione nell'attività che utilizza la mia finestra di dialogo, e questo risolve il problema, ma voglio che la finestra di dialogo sia riutilizzabile e che tutte le attività che la utilizzano per disabilitare le modifiche alla configurazione sembra errata.
Terza opzione sarebbe quella di salvare il riferimento a Persona in una variabile statica, ma, ancora una volta, desidero che la finestra di dialogo sia riutilizzabile e in grado di supportare più istanze.
In che modo le altre persone gestiscono i loro oggetti costosi e complessi in finestre di dialogo riutilizzabili?