Android - getResources () и статический - PullRequest
6 голосов
/ 08 октября 2010

У меня есть класс

public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener

. Я пытаюсь вызвать метод из другого класса.Этот метод содержит:

mFoo.setTextColor(getResources().getColor(R.color.orange))

Но он не работает.Он говорит мне getResources не статично ... как я могу это изменить?

1 Ответ

13 голосов
/ 08 октября 2010

Но он не работает, он говорит мне, getResources не статичен ... как я могу изменить?

Это означает, что вы пытаетесь вызвать getResources() из статического метода, а не из обычного (экземпляра) метода. В вашем случае проще всего, если mFoo является TextView или другим виджетом, это вызвать getResources() на Context, доступном из виджета:

mFoo.setTextColor(mFoo.getContext().getResources().getColor(R.color.orange));

Однако тот факт, что вы пытаетесь сослаться на виджет с именем mFoo из статического метода, пугает меня до чертиков. Это просто просит утечки памяти. Я думаю, вам действительно нужно пересмотреть использование элементов и методов статических данных.

...