2013-05-28 90 views
0

为什么我会收到错误消息The method getResources() is undefined for the type ColorObjectManager尝试加载位图时出错

我用这条线来加载一个位图图像:

orange = BitmapFactory.decodeResource(getResources(), R.drawable.pearl_orange); 

它的工作很好,如果我这样做是在另一个类,我称之为GameLoop这是我做的MainActivity类中的对象。但是当我在类ColorObjectManager中尝试这样做时,它不起作用,我在GameLoop类中做了一个对象。你跟着?

为什么我仅限于在GameLoop课程中使用此加载部件,而不是在ColorObjectManager课程中使用此加载部件?我认为如果我将Context传递给ColorObjectManager的构造函数会有帮助,但它不会!我想我错过了一些知识,在这里我可以创建对象而不是。我可以得到一些帮助来解决这个问题吗?谢谢!

+1

我猜你会需要调用'context.getResources()'。 – ConcurrentHashMap

+1

上下文mContext; public ColorObjectManager(Context context) this.mContext = context; }将上下文传递给构造函数并使用它。 – Raghunandan

+0

@Raghunandan我真的需要使用Context mContext,然后再使用this.mContext = context!?如果我只是使用上下文参数并将其传递给加载图像的方法,它正在工作。我认为我只需要使用'this',如果我在类的开头使用上下文上下文相同的名称,然后使用构造函数this.context = context。请解释你是否有时间!? –

回答

2

getResource需要一个Context对象。如果您通过contextColorObjectManager您可以使用context.getResources()

+0

感谢您的帮助!你是第一个回答! –

+0

欢迎你(可能你想写下“你不在哪里”:D) – Blackbelt

+0

对不起英文不好! –

0

检索资源要获取对getResources()的访问权限,需要使用活动上下文。您的ColorObjectManager不是活动。所以你需要将Activity上下文传递给这个类。

1

我同意blackbelt发布的答案。将活动上下文从活动类传递给ColorObjectManager的构造函数。

 new ColorObjectManger(ActivityName.this); 

构造

 Context mContext; 
    public ColorObjectManager(Context context) 
    { 
      this.mContext= context; 
    } 

然后使用上下文来获取资源。

编辑:

如果你只想在你的加载方法使用上下文

 public ColorObjectManager(Context context) 
    { 
      load(context); 
    } 
+0

请看我上面的评论! –

+0

感谢您的帮助! –