我对getActivity()
的使用有疑问。
如果我有这两种不同的用途:
我只是使用getActivity()
来提供Context
:
Toast.makeText(getActivity(), "test", Toast.LENGTH_SHORT);
在这里我用它来获取资产:
getActivity().getAssets();
我的问题是,如果Activity
尚未添加到Fragment
,这两行之间是否存在差异?
如果getActivity()
仅用作Context
,是否可以获得空指针?
我希望我的问题很明确......
更新:对于那些投票的人,至少请解释原因......
谢谢
答案 0 :(得分:0)
最后,我为我的Fragments
提出了这个解决方案,自那以后我没有收到任何错误:
我会在方法Fragment
中尽快获得onAttach()
的上下文:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mContext = activity;
}
多亏了这一点,我可以在班级的任何地方使用Activity
的上下文。
对于需要从Activity
本身获取元素的情况,我将在方法onActivityCreated()
中执行此操作,以保证Activity
将完全初始化。
例如:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//Get the device screen size
Display display = getActivity().getWindowManager().getDefaultDisplay();
(...)
}