我在我的Android应用程序内的一个类中,如何获取应用程序的主要上下文和活动?
感谢您的帮助!
答案 0 :(得分:26)
我相信你已经有了上下文,但你不知道它是上下文:
Context是一个抽象基类,很多类都是从中继承的。
因此,当您编写代码的类是以下之一时,您可以使用this
引用来获取上下文:
因此你可以写:
Context context = this;
或
Context context = (Context) this;
答案 1 :(得分:1)
如果是自定义视图:有一个参数上下文是您的活动。
Activity activity = (Activity)context;
如果它是一个不同的类,只需在构造函数中发送活动。
答案 2 :(得分:0)
正如@Robert所提到的, Context 是一个抽象类,你所拥有的是结构:
上下文< ContextWrapper<应用
上下文< ContextWrapper< ContextThemeWrapper<活性
上下文< ContextWrapper< ContextThemeWrapper<活动< ListActivity
上下文< ContextWrapper<服务
上下文< ContextWrapper<服务< IntentService
所以,所有这些类都以自己的方式成为上下文。如果您愿意,可以将服务和 ListActivity 投射到上下文。但是如果仔细观察,一些类也会继承主题。在活动或片段中,您希望将主题应用于您的观看,但不要在其他地方关注它。
我在上下文中解释了差异here。