2013-05-28 4 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? Я думал, что это поможет, если я передам контекст конструктору ColorObjectManager, но это не так! Наверное, мне не хватает знаний здесь, где я могу создавать объекты, а не. Могу ли я получить некоторую помощь, чтобы разобраться в этом? Благодаря!

+1

Я думаю, вам нужно будет позвонить 'context.getResources()'. – ConcurrentHashMap

+1

Контекст mContext; public ColorObjectManager (контекст контекста) { this.mContext = context; } Передайте контекст конструктору и используйте его. – Raghunandan

+0

@Raghunandan Нужно ли мне использовать контекст mContext, а затем позже.mContext = context!? Он работает, если я просто использую параметр контекста и передаю его методу, который загружает изображения. И я думал, что мне нужно использовать «это», если бы я имел такое же имя, как контекст контекста, в начале класса, а затем в конструкторе this.context = context. Пожалуйста, объясните, есть ли у вас время !? –

ответ

2

getResource нужен объект контекста. Если вы пройдете context до ColorObjectManager, вы можете получать ресурсы с помощью context.getResources()

+0

Спасибо за помощь! Вы первыми ответили! –

+0

приветствуются (возможно, вы хотите написать «Вас не было»): D) – Blackbelt

+0

Извините за плохой английский! –

0

Чтобы получить доступ к getResources(), необходим контекст действия. Ваш ColorObjectManager не является Activity. Поэтому вам нужно передать контекст Activity в этот класс.

1

Я согласен с ответом, отправленным blackbelt. Передайте контекст активности конструктору ColorObjectManager из вашего класса активности.

 new ColorObjectManger(ActivityName.this); 

Конструктор

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

Затем использовать контекст, чтобы получить ресурсы.

Edit:

Если вы хотите использовать контекст только в методе загрузки

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

См. Мой комментарий выше! –

+0

Спасибо за помощь! –

Смежные вопросы