返回getContext的对象

时间:2017-11-13 14:06:50

标签: android onclick android-context

当我从view.getContext执行onClick(View view)时,我发现它并不总是提供主机活动对象。

那么,来自view.getContext()的{​​{1}}何时返回onClick(View view)个对象,或者它何时返回主机活动对象或任何其他对象?

1 个答案:

答案 0 :(得分:0)

Context是有关应用程序环境的全局信息的接口。

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

如果你想知道原因,你需要阅读源代码: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/view/LayoutInflater.java

第758行:

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

在第908行:

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

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