我有一个班级
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener
我试着从另一个类调用一个方法。此方法包含:
mFoo.setTextColor(getResources().getColor(R.color.orange))
但它不起作用。它告诉我getResources
不是静态的......我怎么能改变它?
答案 0 :(得分:13)
但它不起作用,它告诉我,getResources不是静态的......我怎么能改变?
这意味着您尝试从静态方法调用getResources()
,而不是常规(实例)方法。在您的情况下,如果mFoo
是TextView
或其他小部件,则最简单的方法是在小部件的getResources()
上调用Context
:
mFoo.setTextColor(mFoo.getContext().getResources().getColor(R.color.orange));
但是,您尝试从静态方法引用名为mFoo
的窗口小部件这一事实吓跑了我。这只是要求内存泄漏。我认为你真的需要重新考虑使用静态数据成员和方法。