Android:无法从类型View中对非静态方法getResources()进行静态引用

时间:2012-09-20 13:15:22

标签: java android static

我的简单apliccation有问题。 我不想粘贴大量的代码。 我已经上课Zaladuj,我必须使用getResources()加载文件。

loading_screen = BitmapFactory.decodeResource(Widok.getResources(),R.drawable.loading_screen);

在这一行我有错误:

  

无法从类型View中对非静态方法getResources()进行静态引用。

我把所有课程代码放在这里:http://www.pcyra.pl/badpanda
它不是一个网站,它只是我项目的文件夹。我在MainActivity中创建View实例,错误显示在第50行的类Zaladuj中。

3 个答案:

答案 0 :(得分:2)

由于getResources()方法不是static,您需要创建一个Widok类的实例才能调用它,例如:

Widok widok = new Widok(context);
BitmapFactory.decodeResource(widok.getResources(),R.drawable.loading_screen);

答案 1 :(得分:0)

错误显然告诉你什么是错的。你不能用Widok打电话。

如果您在活动课程中,请致电

BitmapFactory.decodeResource(getResources(),R.drawable.loading_screen);

如果您在非活动课程中,那么您将需要活动背景。

就像你在AsyncTask中一样,你会写这样的东西

BitmapFactory.decodeResource(context.getResources(),R.drawable.loading_screen);

确保在构造函数中传递正确的活动上下文。

答案 2 :(得分:0)

您收到该错误的原因“无法从类型View中对非静态方法getResources()进行静态引用。”是因为getResources()方法不是静态方法。换句话说,你需要同化一个新的Widok

Widok w = new Widok(context);

然后调用该对象上的资源

w.getResource();

**修改

这是您在活动类中添加的代码。您将关键字“this”传递给Widok的构造函数,该构造函数引用了应用程序上下文

Widok w = new Widok(this);
loading_screen = BitmapFactory.decodeResource(w.getResources(),R.drawable.loading_screen);