![](/img/trans.png)
[英]after override getview method for custom adapter for a listview,see nothing in listview
[英]Override getview not working
我是超级菜鸟。 考虑到这一点,我试图将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;
}
问题是在第三行super.getview中,我得到“无法解析方法”。 如果我删除了“ super”,它会解决,但是会说Override实际上并不会覆盖超类方法,这很有意义,但是有人可以解释一下为什么原始代码不起作用。
谢谢
原因是,Android的GridView类中没有getView(...)方法。 您不能覆盖不存在的内容。
更新:您将需要在Adapter类中重写getView(...)方法。
您可能是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 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.