当我从view.getContext
执行onClick(View view)
时,我发现它并不总是提供主机活动对象。
那么,来自view.getContext()
的{{1}}何时返回onClick(View view)
个对象,或者它何时返回主机活动对象或任何其他对象?
答案 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);
}
所以......如果您想将活动作为参数传递,则不应使用上下文。