SimpleCursorAdapter在滚动期间弄乱listview项目

时间:2017-10-10 11:29:57

标签: android listview simplecursoradapter

我有一个列表视图,显示食品交付,其项目由自定义SimpleCursorAdapter设置。

我正在为每个食品配送或列表视图项目显示一个额外的图标,其中包括特别优惠等。我也在对列表进行排序,以便将特殊优惠提供给食品。

首次初始化列表视图时,一切都很好。当您滚动时,那些不包含特价商品的商品也会有图标,并且列表视图会混乱。

我想这个问题来自回收视图,但我不知道如何解决它。

这是我的SimpleCursorAdapter类

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);
        }
    }
}

1 个答案:

答案 0 :(得分:2)

 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);
 }