Android 片段的getContext和传递给片段的onCreateView的容器的getContext之间有区别吗?

Android 片段的getContext和传递给片段的onCreateView的容器的getContext之间有区别吗?,android,android-fragments,android-activity,android-view,android-context,Android,Android Fragments,Android Activity,Android View,Android Context,说如果我们打电话 fragment.getContext()和container.getContext我们会得到相同的结果吗,宿主活动 view.getContext()是否总是返回活动上下文,或者它是否可以返回其他类型的上下文 android中的活动类扩展了上下文类。所以基本上一个活动就是一个上下文。但上下文可能不是一种活动 fragment.getContext()将返回它所附加到的容器的上下文。因此,yescontainer.getContext()将具有与fragment.getCont

说如果我们打电话

fragment.getContext()
container.getContext
我们会得到相同的结果吗,宿主活动

view.getContext()
是否总是返回
活动
上下文
,或者它是否可以返回其他类型的
上下文

android中的活动类扩展了上下文类。所以基本上一个活动就是一个上下文。但上下文可能不是一种活动

fragment.getContext()
将返回它所附加到的容器的上下文。因此,yes
container.getContext()
将具有与
fragment.getContext()
相同的结果,即主机活动

创建视图组实例时,充气机会将该活动的上下文传递给它。表示
container.getContext()
将返回相同的上下文

fragment.getActivity()
将返回它附加的活动,该活动又是一个上下文。当片段与活动分离时,它返回null。当附加时,它还返回与
getContext()相同的值


关于最后一个问题,
view.getContext()
返回运行它的上下文。视图不扩展上下文类,事实上,当它们被创建时,它们需要上下文对象作为参数。因此,当您在activty中创建视图时,需要传递上下文。当您调用
view.getContext()
时,您将获得与创建它时传递的相同的上下文。

因此,我们可以在创建应用程序上下文时传递
Application context
以查看它?在应用程序中创建视图时,您可以传递
getContext()
getActivity().getApplicationContext()
。但通常视图是用XML创建的,其余的由inflater来完成。“因此,yes container.getContext()将具有与fragment.getContext()相同的结果,即主机活动。”但如果使用
应用程序上下文对
容器
进行充气,则
fragment.getContext()的上下文将不同
container.getContext
我不记得任何情况下使用
ApplicationContext
对容器进行充气,容器必须绑定到活动,因此在
ActivityContext
中充气
ApplicationContext
是整个应用程序的上下文,它与应用程序的生命周期相关联,而应用程序的生命周期不同于活动的生命周期。在您知道自己具体在做什么之前,您不应该使用
ApplicationContext
。是的,它不是通用的,但我们可以这样做,生成的
视图
不会主题化,而是使用系统默认的
主题
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState)