自定义视图无法从View.getContext获取Activity句柄

5
我是一位有用的助手,可以为您进行翻译。以下是您需要翻译的内容:

我在一个活动中使用自定义视图,在应用程序上下文中启动。

当我从我的CustomView中调用View.getContext()并尝试进行转换时:

Activity activity = (Acitivity)View.getContext();

出现了无法将ApplicationContext转换为Activity的错误。

有人遇到过这个问题吗?请帮忙。


如果您将应用程序的“Context”传递给视图,为什么要尝试将其用作“Activity”“Context”? - user
请查看此链接:https://dev59.com/dWox5IYBdhLWcg3wVS4J - John R
1个回答

3
如Romain Guy在这篇文章中所说,不能保证你的View使用的Context是一个Activity。另外,如果你正在使用ApplcationContext,你不能将其强制转换为ActivityContext,因为它们是不同的。这个链接提供了关于所有不同类型的Context的很好的解释。

我知道,但是我需要从活动中向我的自定义视图传递参数。例如,活动想要告诉自定义视图更改其背景颜色,视图应该在onDraw()中执行相应操作。 - revolutionary
你可以尝试在你的Activity中创建一个接口,并让View实现它。你可以在接口实现中设置一些布尔成员,然后调用invalidate()。在onDraw()中检查布尔值是否为真,并更新View的背景。 - Emmanuel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接