Android Studio - Comunicazione tra Fragment e Activity
Un’Activity può chiamare i metodi del Fragment. Come fa?
Istanzia un oggetto, usa il FragmentManager e poi findFragmentById()
Fragment frag = (Fragment) getFragmentManager().findFragmentById(R.id.frame_one);
Prendere il riferimento?
findFragmentById(R.id.frame_one), findFragmentByTag()
Comunicazione Fragment a Fragment non può esser fatta. I Fragment non possono comunicare tra Loro. Sia chiaro. Ma devono sempre passare dall’Activity
Il Fragment è una parte dell’User Interface. Il Fragment fa parte della View.
L’Activity che fa parte del Control.
L’Activity ospita il Fragment e quindi si prende la briga di far scambiare i messaggi tra Fragment.
Il Fragment può accedere all’istanza dell’Activity che lo ospita.
Altri Tipi di Fragment
DialogFragment
ListFragment
PreferenceFragment
ListFragment: mostra una Lista di Elementi gestiti da un’Adapter. Come ListActivity fornisce metodi per gestire i click
Cambi di Configurazione e Fragment
Se abbiamo dei dati e perdiamo il Focus() è bene assicurarci il ripristino dello Stato.
Cambio di configurazione. Da Verticale ad Orizzontale.
Quando la configurazione del Device cambia, O.S. Android per default termina le Activity correnti e le riavvia con la nuova configurazione.
E deve avviarla con la nuova Configurazione → onRestart()
Per il nuovo Layout.
Nel Fragment, quando la configurazione cambia, Android distrugge l’Activity ma non il Fragment.
Con setRetainInstance(true), nel Fragment. Quando la configurazione cambia, O.S. Android distrugge l’Activity ma non il Fragment.
O.S. lo stacca e lo mette in un’altra zona di memoria.
O.S. lo stacca e lo mette in un’altra zona di memoria.
setRetainInstance(true) salviamo quella parte di interfaccia che poi ci interessa, che sia disponibile di Nuovo.
Cosa fa O.S. Android, prima di distruggere l’Activity?
Rimuove il Fragment e lo riaggancia (Attach) quando l’Activity è stata rigenerata. Si possono salvare e ottimizzare risorse.
Quando c’è un Cambio di Configurazione, l’O.S. Android rimuove il Fragment e lo riaggancia (Attach) quando l’Activity è stata rigenerata. Si possono salvare e ottimizzare risorse.