PreferenceFragment中的上下文环境

16

摘自http://developer.android.com/guide/topics/ui/settings.html:

注意:PreferenceFragment 没有自己的 Context 对象。如果需要一个 Context 对象,可以调用 getActivity() 方法。但是,在 Fragment 附加到 Activity 时才调用 getActivity() 方法,要小心。当 Fragment 尚未附加或在其生命周期结束时被分离时,getActivity() 方法将返回 null。

如果我在 PreferenceFragment 的 OnCreate() 方法中调用 getActivity() 方法,那么我可以确保该 Fragment 已连接到其 Activity 吗?还是在这种情况下应该以其他方式获取 Context?

我需要 Context 的原因是我正在尝试从 PreferenceFragment 使用 Toast 通知。


这个仓库对于解释Fragment和Activity的生命周期做得非常好。https://github.com/xxv/android-lifecycle/blob/master/README.md - ian.shaun.thomas
1个回答

20
如果您想确保一个上下文(Context)可用,您需要等待Fragment附加到一个Activity中。这个回调方法是onAttach(Activity)

根据Fragment的生命周期状态,getActivity()方法也可能返回null。

在 onResume 和 onPause 之间它是非空的吗? - Ahmed
我想我们永远不会知道。 - Denny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接