我只是想知道我们可以覆盖扩展getView()
类的类中的CursorAdapter
方法吗?CursorAdapter
类中未实现的方法是newView()
到膨胀View
和bindView()
以将数据源中的数据绑定到View
。但问题是我们无法将View
保存在newView()
内方法,因此与garbage collection
相比,它更频繁地运行getView()
我们先前获得View
创建的先前实例。因此我们可以覆盖getView()
而不是{{1}在扩展newView()
的类中?如果可以的话,我们是否需要每次都自己调用它,或者编译器是否会为我们这样做?
代码已添加
我正在尝试创建一个音乐播放器,我已经创建了一个单独的类来处理适配器。我已经指定了每个类的类型,并且已经创建了这个自定义适配器类的对象来处理视图通胀和数据绑定。
CursorAdapter
}
答案 0 :(得分:0)
不确定。你可以覆盖它。方法如下:
public class CustomAdapter extends CursorAdapter {
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return null;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return super.getView(position, convertView, parent);
}
}
那就是说,你没有(不需要)。 newView
和bindView
由getView
调用。因此,覆盖getView
基本上不会改变任何内容。
您只需自己创建视图并绑定数据,而不必担心使用convertViews
。
所有缓存都在后台完成,即如果您没有覆盖getView
方法。
您可以非常轻松地找到大多数Android类的源代码。这是CursorAdapter
's getView
method implementation.
答案 1 :(得分:0)
如果您使用多种视图类型,则应覆盖BaseAdapter中的以下内容以获取正确的行为: