除了Activity类,我如何到达getResources()和Context?

时间:2012-01-26 14:21:46

标签: android resources android-context

我知道这个问题很普遍,但我总是面对这个问题。 我的问题是我可以在getResource()中找到getContext()Activity,但是当我想要使用没有活动的课程时 例: public class MapOverlay extends ItemizedOverlay

我无法联系到getResources()Context

我怎么能这样做才有人知道任何技巧?

3 个答案:

答案 0 :(得分:1)

我通常按以下方式进行:

  • 创建一个扩展Application的类,比如MyApp
  • 声明private static Context context字段
  • context字段
  • 声明(静态)getter
  • 初始化onCreate(): context = this
  • 中的字段

现在通过MyApp.context()

在所有应用程序中提供上下文

答案 1 :(得分:0)

只需在MapOverlay中公开一个带有Context的公共方法。

  public void setContext(Context context) {
        mContext = context;
}

答案 2 :(得分:0)

在不延长android.content.Context的情况下,物品大小叠加。

您可以创建像

这样的构造函数
private Context mContext;    
public MapOverlay(Context context){
this.mContext=context;
}

然后使用mContext字段调用getResource()getContext()方法。