我是超级菜鸟。考虑到这一点,我正在尝试将gridview的各个单元格设置为不同的颜色。我知道这个问题已被多次询问,我已经阅读了大部分内容。 我已经看到了很多不同的方法,但最简单的(我相信)是@Override getView方法:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
int color = 0x00FFFFFF; // Transparent
if (SOME_CONDITION) {
color = 0xFF0000FF; // Opaque Blue
}
view.setBackgroundColor(color);
return view;
}
问题是在第3行,super.getview我得到“无法解析方法”。如果我删除“超级”它确实解决但后来说Override实际上没有覆盖超类方法,这是有道理的,但有人可以解释为什么原始代码不起作用。
由于
答案 0 :(得分:1)
原因是,Android的GridView类中没有getView(...)方法。你不能覆盖不存在的东西。
<强>更新强> 您需要覆盖Adapter类中的getView(...)方法。
答案 1 :(得分:0)
您可能是java的新手,我认为@Override的以下说明将有助于您将来自行诊断问题:
表示方法声明旨在覆盖超类型中的方法声明。如果方法用此注释 注释类型编译器需要生成错误消息 除非至少满足下列条件之一:
The method does override or implement a method declared in a supertype. The method has a signature that is override-equivalent to that of any public method declared in Object.
你的问题是#1。
有关详细信息,请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/Override.html。