Android 将getActivity()用作上下文或活动
我有一个关于使用Android 将getActivity()用作上下文或活动,android,android-context,Android,Android Context,我有一个关于使用getActivity()的问题 例如,如果我有以下两种不同的用途: 这里我只使用getActivity()来提供上下文: Toast.makeText(getActivity(), "test", Toast.LENGTH_SHORT); 这里我用它来获取资产: getActivity().getAssets(); 我的问题是,如果活动尚未添加到片段,那么这两行之间是否有任何区别 如果getActivity()仅用作上下文,是否可能获取空指针 我希望我的问题是清楚的 更新:
getActivity()
的问题
例如,如果我有以下两种不同的用途:
这里我只使用getActivity()
来提供上下文
:
Toast.makeText(getActivity(), "test", Toast.LENGTH_SHORT);
这里我用它来获取资产:
getActivity().getAssets();
我的问题是,如果活动
尚未添加到片段
,那么这两行之间是否有任何区别
如果getActivity()
仅用作上下文
,是否可能获取空指针
我希望我的问题是清楚的
更新:对于投反对票的人,至少请解释原因
谢谢最后,我为我的
片段
想出了这个解决方案,我没有收到任何错误,因为:
实际上,我将在方法onAttach()
中尽快获取片段的上下文:
由于这一点,我可以在课堂的任何地方使用活动的上下文
对于需要从活动
本身获取元素的情况,我将使用方法onActivityCreated()
来确保活动
将被完全初始化
例如:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//Get the device screen size
Display display = getActivity().getWindowManager().getDefaultDisplay();
(...)
}
当您尝试在片段中使用活动引用时,我们总是使用getActivity()获取此引用,因此它永远不会返回null。嗯,我不明白您的意思,我必须在片段中处理getActivity()
上的几个随机空指针。请继续阅读。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//Get the device screen size
Display display = getActivity().getWindowManager().getDefaultDisplay();
(...)
}