Android CursorAdapter的newView()如何工作?
我对Android CursorAdapter的newView()如何工作?,android,Android,我对CursorAdapter的newView()。我特别感兴趣的是框架传递给方法的游标c。我有一个ListView,其中填充了一个CursorAdapter,其中包含4行。在一些解压之后,我看到两个不同的游标c对象被传递到newView()中,这一事实让我感到困惑 我希望将不同的游标传递给方法,在数据库中每个行都有不同的游标对象。考虑到这个假设,我在listview行的checkbox元素上设置了onClick侦听器,但这非常奇怪 @Override public View
CursorAdapter
的newView()。我特别感兴趣的是框架传递给方法的游标c
。我有一个ListView
,其中填充了一个CursorAdapter
,其中包含4行。在一些解压之后,我看到两个不同的游标c
对象被传递到newView()
中,这一事实让我感到困惑
我希望将不同的游标
传递给方法,在数据库中每个行
都有不同的游标
对象。考虑到这个假设,我在listview行的checkbox元素上设置了onClick侦听器,但这非常奇怪
@Override
public View newView(Context ctxt, Cursor c, ViewGroup parent) {
View row;
final Cursor cursor = c;
LayoutInflater inflater = ((Activity) ctxt).getLayoutInflater();
row = inflater.inflate(R.layout.row, parent, false);
this.defaultDrawable = (Drawable) row.getBackground();
final CheckBox mStar = (CheckBox) row.findViewById(R.id.star);
mStar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mStar.isChecked()) {
mDbHelper.updateFavorite(cursor, 1);
} else {
mDbHelper.updateFavorite(cursor, 0);
}
}
});
ViewHolder holder = new ViewHolder(row);
row.setTag(holder);
return (row);
}
光标是指向创建视图时所在位置的指针。在onClick方法中,它将指向查询中的其他位置
可以通过调用cursor.moveTo()将其移动到所需的位置
对于游标适配器,游标通常有一个_ID列,该列的值用于标识行。概念上的第一个游标类似于迭代器。。。接下来,您应该了解ListView优化。。。如果适配器在已经创建的视图上开始使用bindView
创建足够多的项目,则无需创建超过ListView可见项目数(+1-2个以上)的ListView和Adapter使用newView
来创建这些项目。是的,我为此实现了bindView()。