2012-08-31 92 views
14

http://developer.android.com/guide/topics/ui/settings.html採取:語境中PreferenceFragment

注:PreferenceFragment沒有一個自己的上下文對象。如果 您需要一個Context對象,則可以調用getActivity()。但是,只有在片段連接到 活動時,請仔細撥打 以調用getActivity()。當片段尚未附加,或者在其生命週期結束時脫離 時,getActivity()將返回null。

如果我把從getActivity()一PreferenceFragment的OnCreate()方法中,然後我可以放心,該片段連接到它的活動 - 或者是有,你應該得到的語境在這種情況下一些其他的方式?

的原因,我需要一個Context是我試圖使用Toast通知從PreferenceFragment

+1

getActivity將工作 – nandeesh

+0

該回購在解釋片段和活動生命週期方面做得很好。 https://github.com/xxv/android-lifecycle/blob/master/README.md –

回答

14

如果你想確保一個上下文可用,你需要等到片段已經連接到一個活動。對此的回調是onAttach(Activity)方法。

根據片段的生命週期狀態,getActivity()方法也可以返回null。

+0

它是否在onResume和onPause之間爲空? – Ahmed

+0

我想我們永遠不會知道。 – Denny