Android 从gridView中删除项目,但在Tablet中显示已删除的最后一个项目。如何修复此问题?

Android 从gridView中删除项目,但在Tablet中显示已删除的最后一个项目。如何修复此问题?,android,gridview,arraylist,Android,Gridview,Arraylist,我将项目添加到gridView(使用ArrayList和10个项目),但当我单击按钮删除项目(例如,项目索引为2)时,它将从ArrayList中删除正确的项目,但在gridView中删除最后一个项目 这是适配器getView() ` gridView项xml代码 ` 在gridview中使用的notifyDataSetChanged()视图之后,似乎不会循环使用,因此在getView()中不会创建新视图,并且isNew等于false。这样,在这些视图被销毁之前,不会进行任何更改。最后一个项目没有

我将项目添加到gridView(使用ArrayList和10个项目),但当我单击按钮删除项目(例如,项目索引为2)时,它将从ArrayList中删除正确的项目,但在gridView中删除最后一个项目

这是适配器getView() `

gridView项xml代码

`


在gridview中使用的
notifyDataSetChanged()
视图之后,似乎不会循环使用,因此在
getView()
中不会创建新视图,并且isNew等于false。这样,在这些视图被销毁之前,不会进行任何更改。最后一个项目没有显示,因为
getView()
被调用的次数与项目数一样多,项目数减少了。因此,您应该删除
isNew
检查。

isNew的目的是什么?顺便说一句,删除后关闭并在屏幕上检查是否正确。
isNew
用于防止重复的getView功能。我不知道为什么,但getView调用了更多次,并重复了已有的项。我按日志检查ArrayList。没问题,列出删除正确的项目,但在gridView中视觉上最后删除。当我重新打开存在
gridView
的活动时,我看到了真实的项目。
    public View getView(int arg0, View convertView, ViewGroup arg2) {

    View row = convertView; OrderItemHolder holder;
    OrderItem mItem = orderItemsList.get(arg0);

    if (row == null) {

        isNew = true;

        LayoutInflater inflater = (LayoutInflater) orderActivity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.order_item, arg2, false);

        holder = new OrderItemHolder();
        // initialize the elements
        holder.itemOrderRLay = (RelativeLayout) row.findViewById(R.id.itemOrderRLay);

        holder.orderItemImage = (CImageView) row.findViewById(R.id.orderItemImage);

        holder.itemCount = (TextView) row.findViewById(R.id.itemCount);
        holder.itemCount.setId(mItem.getCountId());

        holder.itemText = (TextView) row.findViewById(R.id.itemText);
        holder.itemCost = (TextView) row.findViewById(R.id.itemCost);

        holder.maxCount = (CButton) row.findViewById(R.id.maxCount);
        holder.maxCount.setCountViewId(holder.itemCount.getId());

        holder.minCount = (CButton) row.findViewById(R.id.minCount);
        holder.minCount.setCountViewId(holder.itemCount.getId());

        row.setTag(holder);
    } else {
        holder = (OrderItemHolder) row.getTag();
    }

    if (mItem != null) {
        if(isNew){

            isNew = false;

            holder.itemCount.setText("x" + mItem.getCount());
            //holder.itemCount.setId(mItem.getCountId());

            holder.itemText.setText(mItem.getMenuInsideItem().getName());
            holder.itemText.setBackgroundResource(R.drawable.small_title_bg);

            holder.itemCost.setText("(" + mItem.getMenuInsideItem().getTime() + " dəq | " + mItem.getMenuInsideItem().getCost() + " manat)");

            holder.itemCost.setTextColor(Color.rgb(93, 40, 40));

            Drawable d = mContext.getResources().getDrawable(mItem.getMenuInsideItem().getPicId());
            holder.orderItemImage.setImageBitmap(OrderUtil.roundCornerImage(OrderUtil.drawableToBitmap(d), 9));

            holder.maxCount.setIndex(arg0);         
            holder.maxCount.setOnClickListener(this);

            holder.minCount.setIndex(arg0);
            holder.minCount.setOnClickListener(this);


            holderList.add(holder);
        }
    }

    return row;
}`
                        <emenu.custom.CImageView
                            android:id="@+id/orderItemImage"
                            android:layout_width="165dp"
                            android:layout_height="165dp"
                            android:layout_centerVertical="true"
                            android:background="@drawable/image_bg_thin"
                            android:clickable="false"
                            android:minWidth="50dip"
                            android:scaleType="fitXY"
                            android:src="@drawable/a10" />

                        <TextView
                            android:id="@+id/itemCost"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignBottom="@+id/orderItemImage"
                            android:layout_marginLeft="2dp"
                            android:layout_toRightOf="@+id/orderItemImage"
                            android:gravity="center"
                            android:text="deq|mnt"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@android:color/black"
                            android:textSize="12sp" />

                        <emenu.custom.CButton
                            android:id="@+id/minCount"
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="2dp"
                            android:layout_toRightOf="@+id/maxCount"
                            android:background="@drawable/image_bg_full"
                            android:text="-"
                            android:textColor="@android:color/white" />

                        <emenu.custom.CButton
                            android:id="@+id/maxCount"
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="2dp"
                            android:layout_toRightOf="@+id/orderItemImage"
                            android:background="@drawable/image_bg_full"
                            android:text="+"
                            android:textColor="@android:color/white" />

                        <TextView
                            android:id="@+id/itemText"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_above="@+id/itemCount"
                            android:layout_alignBottom="@+id/orderItemImage"
                            android:layout_alignLeft="@+id/orderItemImage"
                            android:layout_alignRight="@+id/orderItemImage"
                            android:layout_marginBottom="4dp"
                            android:layout_marginLeft="5dp"
                            android:layout_marginRight="5dp"
                            android:gravity="center"
                            android:text="Pasta Florentine Casserole"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@android:color/black"
                            android:textSize="13sp" />

                        <TextView
                            android:id="@+id/itemCount"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_above="@+id/itemCost"
                            android:layout_alignLeft="@+id/itemCost"
                            android:layout_marginLeft="2dp"
                            android:gravity="center"
                            android:text="x1"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@android:color/black"
                            android:textSize="24sp" />

</RelativeLayout>`
        case R.id.minCount: countText = (TextView) holder.itemOrderRLay.findViewById(holder.minCount.getCountViewId());

        count = OrderUtil.updateDBCount((int) mItem.getMenuInsideItem().getId(), deviceId, mItem.getCountId(), mContext, false);

        Log.w(TAG, "(line 179) button.getIndex() = " + button.getIndex());
        Log.w(TAG, "(line 180) holder.minCount.getCountViewId() = " + holder.minCount.getCountViewId());
        Log.w(TAG, "(line 181) count = " + count);
        Log.w(TAG, "(line 182) holder.getIndex() = " + holderList.indexOf(holder));

        if(count != 0){         
            countText.setText("x" + count);                             
        }

        if(count == 0){
            OrderUtil.updateDBCount((int) mItem.getMenuInsideItem().getId(), deviceId, mItem.getCountId(), mContext, false);
            Log.w(TAG, "(line 192) button.getIndex() = " + button.getIndex());


            orderItemsList.remove(button.getIndex());

            this.notifyDataSetChanged();


        }

        totalCost -= mItem.getMenuInsideItem().getCost();
        totalCostText.setText(totalCost + " manat");
        break;

    default:
        break;
    }`