我最近遇到了一些代码问题:
public class SightsAdapter extends ArrayAdapter<Sights> {
static int mColorResourceId;
public SightsAdapter(ArrayList<Integer> sights, int colorResourceId) {
super(this, 0, sights);
mColorResourceId=colorResourceId;
}
}
我已经尝试在Sights
java类中使用静态方法,但仍然会在this
下划线并显示错误消息
无法参考&#34;这个&#34;在调用超类型构造函数之前
PS我已经回顾了这种类型的其他问题,但他们并没有真正帮助我。我是一个完整的新手,所以如果有人能向我解释我做错了什么,将不胜感激。
答案 0 :(得分:0)
您似乎对作为第一个参数super
传递给Context
构造函数(属于ArrayAdapter
)的内容感到困惑。
例如here您有一个例子,主要部分是:
public class SightsAdapter extends ArrayAdapter<Sights> {
public SightsAdapter(Context context, ArrayList<Integer> sights, int colorResourceId) {
super(context, 0, sights);
...
}
}
Context
必须来自外部,SightsAdapter
必须将其作为参数接收。这就是应用程序中 context 的概念:它是从当前正在运行应用程序/对象的环境中注入的东西。