2012-08-31 17 views
14

tratto da http://developer.android.com/guide/topics/ui/settings.html:Contesto in un PreferenceFragment

Nota: Un PreferenceFragment non dispone di un proprio oggetto Context. Se è necessario un oggetto Contesto, è possibile chiamare getActivity(). Tuttavia, sii attento a chiamare getActivity() solo quando il frammento è collegato a un'attività . Quando il frammento non è ancora collegato o è stato staccato durante la fine del suo ciclo di vita, getActivity() restituirà null.

Se chiamo getActivity() all'interno del metodo OnCreate() di un PreferenceFragment allora posso essere sicuro che il frammento è attaccato alla sua attività - o c'è qualche altro modo si dovrebbe ottenere il contesto in questo caso ?

La ragione per cui ho bisogno di un contesto è che sto cercando di utilizzare una notifica Toast dal PreferenceFragment

+1

getActivity funzionerà – nandeesh

+0

Questo repository fa un buon lavoro di spiegazione del frammento e del ciclo di vita dell'attività. https://github.com/xxv/android-lifecycle/blob/master/README.md –

risposta

14

Se si vuole fare in modo che un contesto è disponibile è necessario attendere che il frammento è stato allegato a un'attività. Il callback per questo è il metodo onAttach(Activity).

A seconda dello stato del ciclo di vita del frammento, il metodo getActivity() può restituire anche null.

+0

Non è nulla tra onResume e onPause? – Ahmed

+0

Immagino che non lo sapremo mai. – Denny

Problemi correlati