我尝试在构造函数的自定义类中创建Resources对象:
public class Morze {
public Morze() {
Resources resources = getResources();
}
}
但是Intellij的想法无法解决方法“getResources”。但是,代码
Resources resources = getResources();
正确使用Activity的onCreate方法。为了在我自己的班级中使用此代码,我该怎么办?
答案 0 :(得分:1)
正确使用Activity的onCreate方法。我能做些什么呢 在我自己的班级中使用这段代码?
您只能从Context检索的资源(每个Activity都从Context扩展,这就是它在Activities中没有问题的原因)所以为了从原始类获取资源,您需要通过构造函数传递Context,例如:
public class Morze {
private Context c;
public Morze(Context c) {
this.c = c;
Resources resources = this.c.getResources();
}
}
或者您可以创建一些方法,例如初始化所需对象的init():
public void init(Context c) {
this.c = c;
this.resources = this.c.getResources();
}
但是使用构造函数的解决方案比第二种方法“更自然”。
答案 1 :(得分:0)
你不能在一个不是Activity的类中获得这样的Resources对象,相反,你必须为Morze类提供上下文 -
public class Morze {
public Morze(Context context) {
Resources resources = context.getResources();
}