Доступ к ресурсам Drawable из неконтекстного класса - PullRequest
2 голосов
/ 07 ноября 2010

Я определяю класс, который устанавливает атрибут Drawable в объекте.Проблема в том, что я не могу получить доступ к методу getResource().getDrawable(int resourceId), если у меня нет Context.Я отправил этому классу экземпляр действия (назовем его «акт»), а затем сделал:

act.getResources().getDrawable(R.drawable.whellchair)

, но при выполнении этой строки он выдает1008 *.

Когда возникнет идея, как этого добиться?

Ответы [ 2 ]

1 голос
/ 07 ноября 2010

Я нашел проблему!Я использую синглтон и ставлю строку доступа к «действию» статическим способом ... как глупо с моей стороны ...

Извините и спасибо, Юхани за комментарий

0 голосов
/ 07 ноября 2010

Передайте этот контекст приложения конструктору вашего класса.В основном классе приложения вы просто получаете контекст, вызывая метод getApplication(), если вам нужен контекст с учетом срока службы, или getApplicationContext(), если вам нужен контекст, связанный с текущим процессом.

Пример:

private Context ctx = getApplication();

... some code ...

MyClass myClass = new MyClass(ctx);

Конструктор ваших классов, конечно же, должен обрабатывать контекст соответствующим образом (т. Е. Устанавливать для закрытого члена типа Context переданное значение) следующим образом.

private Context ctx = null;

public MyClass(ctx) {
    this.ctx = ctx;
}

Затем выможете использовать контекст для всего, что вам нужно.

...