Android getContext的返回对象

Android getContext的返回对象,android,onclick,android-context,Android,Onclick,Android Context,当我从onClick(view view)执行视图.getContext时,我注意到它并不总是给出宿主活动对象 那么,什么时候view.getContext()从onClick(view view)返回ContextThemeWrapper对象,或者当它返回主机活动对象或任何其他对象时?上下文是指向有关应用程序环境的全局信息的接口 Activity类扩展了ContextThemeWrapper,如果希望将活动作为参数,则需要将上下文强制转换为活动或在组件之间创建接口 如果您想知道原因,需要阅读源

当我从
onClick(view view)
执行
视图.getContext
时,我注意到它并不总是给出宿主活动对象


那么,什么时候
view.getContext()
onClick(view view)
返回
ContextThemeWrapper
对象,或者当它返回主机活动对象或任何其他对象时?

上下文是指向有关应用程序环境的全局信息的接口

Activity类扩展了ContextThemeWrapper,如果希望将活动作为参数,则需要将上下文强制转换为活动或在组件之间创建接口

如果您想知道原因,需要阅读源代码:

第758行:

if (themeResId != 0) {
     context = new ContextThemeWrapper(context, themeResId);
}
在第908行:

if (hasThemeOverride) {
        context = new ContextThemeWrapper(context, themeResId);
}

所以。。。如果要将活动作为参数传递,则不应使用上下文。

返回什么
context
实现真的重要吗?您想使用它做什么?是的,根据我的要求,我只想在onClick方法中使用主机活动。所以您不能这样做或更改您的要求。。。顺便说一句,为什么你所处的环境真的很重要?你想用它做什么?我不能改变我的要求,我想从这个onClick方法调用host activities方法。我还想知道为什么它有时会给ContextThemeWrapper对象,有时会给host activities.no,您所要做的就是创建一些接口,您的活动将在onClick callback中实现并使用该接口,但它没有解释为什么它有时会提供ContextThemeWrapper对象,有时提供Host activities对象。不,我还没有看到,请告诉我您是否知道something@pskink我已经看到了链接。但是没有看到源代码。如果你看过源代码并发现了什么,请告诉我。