SimpleCursorAdapter 在滚动期间弄乱了列表视图项目
SimpleCursorAdapter messes up listview items during scrolling
我有一个显示送餐情况的列表视图,其项目由自定义 SimpleCursorAdapter 设置。
我正在为每个外卖或包含特价等的列表视图项目显示一个额外的图标。我还在对列表进行排序,以便将带有特价的外卖放在最前面。
第一次初始化列表视图时,一切正常。当您滚动时,不包括特价商品的项目也有图标,列表视图混乱。
我想问题出在视图回收上,但我不知道如何解决。
这是我的 SimpleCursorAdapter class
private class MyCursorAdapter extends SimpleCursorAdapter{
private int rowLayout;
private Cursor cursor;
public MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
this.rowLayout=layout;
this.cursor=c;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
return inflater.inflate(this.rowLayout,null);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// get resources from database
int id = cursor.getInt(0);
int title = cursor.getInt(1);
final int specialOffer = cursor.getInt(7);
if (specialOffer==1){
// we have a special offer delivery
view.findViewById(R.id.offer_imageview).setVisibility(View.VISIBLE);
}
}
}
if (specialOffer==1){
// we have a special offer delivery
view.findViewById(R.id.offer_imageview).setVisibility(View.VISIBLE);
}
else{
view.findViewById(R.id.offer_imageview).setVisibility(View.GONE);
}
我有一个显示送餐情况的列表视图,其项目由自定义 SimpleCursorAdapter 设置。
我正在为每个外卖或包含特价等的列表视图项目显示一个额外的图标。我还在对列表进行排序,以便将带有特价的外卖放在最前面。
第一次初始化列表视图时,一切正常。当您滚动时,不包括特价商品的项目也有图标,列表视图混乱。
我想问题出在视图回收上,但我不知道如何解决。
这是我的 SimpleCursorAdapter class
private class MyCursorAdapter extends SimpleCursorAdapter{
private int rowLayout;
private Cursor cursor;
public MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
this.rowLayout=layout;
this.cursor=c;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
return inflater.inflate(this.rowLayout,null);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// get resources from database
int id = cursor.getInt(0);
int title = cursor.getInt(1);
final int specialOffer = cursor.getInt(7);
if (specialOffer==1){
// we have a special offer delivery
view.findViewById(R.id.offer_imageview).setVisibility(View.VISIBLE);
}
}
}
if (specialOffer==1){
// we have a special offer delivery
view.findViewById(R.id.offer_imageview).setVisibility(View.VISIBLE);
}
else{
view.findViewById(R.id.offer_imageview).setVisibility(View.GONE);
}