我只是想继承 SimpleAdapter 并根据位置更改颜色(以及其他使元素更漂亮和相互区分的选项),但我在覆盖 getView 方法时遇到了麻烦。我刚刚从 SimpleAdapter 类的原始 getView 方法中调用的方法中复制了代码,该方法是 createViewFromResource ,我的代码现在看起来像这样:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater)thecontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(layoutResource, parent, false);
} else {
v = convertView;
}
bindView(position, v);
return v;
}
这里没有什么破坏性的,正如我所说的,它是从原始适配器源中复制粘贴的 95%,我只是从构造函数中获取了一些变量,而不是在超类中声明的私有变量,因为我无法在子类中访问这些变量。我的问题是在返回视图之前调用的 bindView 方法。Eclipse 没有给我任何关于它在做什么的提示,我似乎也无法从我的子类中调用它。
方法 bindView(int, View) 未定义为类型 ChangeColorAdapter
如果我确实使用上面的代码,这就是我得到的,尽管我是从原始来源复制的。对我来说似乎有点奇怪。我正在 API 级别 8 (2.2) 编程并附有源代码。如果我查看 SimpleAdapters 的原始源代码,编辑器无法告诉我 bindView 调用的去向,但它不会在那里给出任何错误。
我在这里有什么问题吗?或者是什么导致了这个问题?我似乎找不到关于 bindView 方法的任何文档或描述,只是示例实现,主要来自游标适配器。任何提示都会很棒。
干杯