Java 从RecycleView中删除项目

Java 从RecycleView中删除项目,java,android,android-studio,Java,Android,Android Studio,我想从购物车中删除一个项目。在这种情况下,购物卡列表是RecycleView。当我仍在购物车活动中时,该项目已成功删除,但当我通过BottomNavigationView更改活动并返回购物车活动时,该项目再次出现。有人知道这个问题吗?谢谢你的回答 顺便说一句,很抱歉英语不好 这是我的密码剪 holder.trashIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View

我想从购物车中删除一个项目。在这种情况下,购物卡列表是
RecycleView
。当我仍在购物车活动中时,该项目已成功删除,但当我通过
BottomNavigationView
更改活动并返回购物车活动时,该项目再次出现。有人知道这个问题吗?谢谢你的回答

顺便说一句,很抱歉英语不好


这是我的密码剪

holder.trashIcon.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
     mReceiptList.remove(holder.getAdapterPosition());
     notifyItemRemoved(holder.getAdapterPosition());
     notifyItemRangeChanged(holder.getAdapterPosition(), mReceiptList.size());
     holder.itemView.setVisibility(View.GONE);
     ((DaftarCartFragment) fragment).calculateTotalMin();
  }
});
更新

下面是完整的代码,包括mReceiptList的用法

package tech.agronum.kitchenwaremobile.adapters;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.google.gson.Gson;

import org.w3c.dom.Text;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;

import tech.agronum.kitchenwaremobile.R;
import tech.agronum.kitchenwaremobile.fragments.cart.DaftarCartFragment;
import tech.agronum.kitchenwaremobile.models.Mobile.Product.Product;
import tech.agronum.kitchenwaremobile.models.Mobile.Product.Receipt;

public class RecycleViewCartAdapter extends RecyclerView.Adapter<RecycleViewCartAdapter.RecyclerVH> {

    public static List<Receipt> mReceiptList = null;

    Product inventory;
    String[] spacecrafts;
    Context context;
    FragmentManager fragmentManager;
    private int add = 0;
    private int subtract = 0;
    Fragment fragment;
    SharedPreferences preferences;

    public RecycleViewCartAdapter(List<Receipt> receipt, FragmentManager _fragmentManager, Fragment _fragment) {
        mReceiptList = receipt;
        fragmentManager = _fragmentManager;
        fragment = _fragment;
    }

    // Fungsi Hitung
    public Integer getQuantityPrice(int i) {
        return mReceiptList.get(i).getQuantity() * mReceiptList.get(i).getPrice();
    }

    @NonNull
    @Override
    public RecyclerVH onCreateViewHolder(@NonNull ViewGroup parent, int i) {
        View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.component_card_cart,parent,false);
        return new RecyclerVH(v);
    }

    @Override
    public void onBindViewHolder(@NonNull final RecyclerVH holder, int i) {
        final Receipt receipt = mReceiptList.get(i);
        final String id = receipt.getId().toString();

        String produkName = receipt.getName();
        String produkCode = receipt.getCode();
        Integer price = receipt.getPrice();
        Integer qty = receipt.getQuantity();
        String condition = receipt.getCondition();
        NumberFormat formatter = new DecimalFormat("#,###");

        if(receipt.getId() == 0){
            holder.produkName.setText("Data sudah terhapus atau tidak ada");
            holder.produkCode.setText("-");
            holder.price.setText("-");

        } else {
            try {
                holder.produkName.setText(produkName);
                holder.produkCode.setText(produkCode);
                holder.itemCondition.setText(condition);
                holder.itemQuantity.setText(qty.toString());
                holder.price.setText(formatter.format(price) + "");
            } catch (NullPointerException ne) {
                ne.printStackTrace();
            }
        }

        final int now = Integer.parseInt(holder.itemQuantity.getText().toString());

        holder.buttonPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                int res;
//                add++;
//                res = now+ add;
//                holder.itemQuantity.setText(res + "");
                Integer current = Integer.parseInt(holder.itemQuantity.getText().toString());
                current = current + 1;
                holder.itemQuantity.setText(current.toString());
                receipt.setQuantity(current);
                ((DaftarCartFragment) fragment).calculateTotal();
            }
        });

        holder.buttonMinus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                int res;
//                subtract++;
//                res = now - subtract;
//                holder.itemQuantity.setText(res + "");
                Integer current = Integer.parseInt(holder.itemQuantity.getText().toString());
                if(current>0) {
                    current = current - 1;
                }
                holder.itemQuantity.setText(current.toString());
                receipt.setQuantity(current);
                ((DaftarCartFragment) fragment).calculateTotalMin();
            }
        });

        holder.trashIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                holder.itemView.setVisibility(View.GONE);
                ((DaftarCartFragment) fragment).calculateTotalMin();
                mReceiptList.remove(holder.getAdapterPosition());
                notifyItemRemoved(holder.getAdapterPosition());
                notifyItemRangeChanged(holder.getAdapterPosition(), mReceiptList.size());
            }
        });

    }

    @Override
    public int getItemCount() {
        int size = 0;
        try {
            size = mReceiptList.size();
        } catch (NullPointerException ne) {
            ne.printStackTrace();
            size = 0;
        } catch (Exception e) {
            e.printStackTrace();
            size = 0;
        }
        return size;
    }

    /*
    VIEWHOLDER CLASS
     */
    public class RecyclerVH extends RecyclerView.ViewHolder
    {
        Integer id;
        TextView produkName;
        TextView produkCode;
        TextView category;
        TextView warehouseCategory;
        TextView price;
        EditText itemQuantity;
        Button detailButton;
        TextView buttonPlus;
        TextView buttonMinus;
        TextView itemCondition;
        ImageView trashIcon;


        // ImageView imageView;

        public RecyclerVH(View itemView) {
            super(itemView);
            produkName = (TextView) itemView.findViewById(R.id.item_name);

            produkCode = (TextView) itemView.findViewById(R.id.product_code);

            category = (TextView) itemView.findViewById(R.id.product_category);

            warehouseCategory = (TextView) itemView.findViewById(R.id.product_warehouseCategory);

            price = (TextView) itemView.findViewById(R.id.product_price);

            itemQuantity = (EditText) itemView.findViewById(R.id.item_quantity);

            buttonPlus = (TextView) itemView.findViewById(R.id.item_quantity_button_plus);

            buttonMinus = (TextView) itemView.findViewById(R.id.item_quantity_button_minus);

            detailButton = (Button) itemView.findViewById(R.id.product_detail_button);

            itemCondition = (TextView) itemView.findViewById(R.id.item_condition);

            trashIcon = (ImageView) itemView.findViewById(R.id.trash_icon);
            //imageView = (ImageView)itemView.findViewById(R.id.productImage);
        }
    }


}

package tech.agronum.kitchenwaremobile.adapters;
导入android.content.Context;
导入android.content.SharedReferences;
导入android.os.Bundle;
导入android.support.annotation.NonNull;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.google.gson.gson;
导入org.w3c.dom.Text;
导入java.text.DecimalFormat;
导入java.text.NumberFormat;
导入java.util.List;
进口技术.agronum.kitchenwaremobile.R;
导入tech.agronum.kitchenwaremobile.fragments.cart.daftarcartframents;
进口技术.agronum.kitchenwaremobile.models.Mobile.Product.Product;
导入tech.agronum.kitchenwaremobile.models.Mobile.Product.Receipt;
公共类RecycleViewCartAdapter扩展了RecycleView.Adapter{
公共静态列表mReceiptList=null;
产品库存;
弦[]航天器;
语境;
碎片管理器碎片管理器;
私有int add=0;
私有整数减去=0;
片段;
共享参考偏好;
公共RecycleViewCartAdapter(列表收据、碎片管理器\u碎片管理器、碎片\u碎片){
mReceiptList=收据;
fragmentManager=\u fragmentManager;
片段=_片段;
}
//冯希同
公共整数getQuantityPrice(int i){
返回mReceiptList.get(i).getQuantity()*mReceiptList.get(i).getPrice();
}
@非空
@凌驾
public RecyclerVH onCreateViewHolder(@NonNull ViewGroup parent,int i){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.component\u card\u cart,parent,false);
返回新的回收器(v);
}
@凌驾
BindViewHolder上的公共无效(@NonNull final RecyclerVH holder,int i){
最终接收=mReceiptList.get(i);
最终字符串id=receipt.getId().toString();
字符串produkName=receipt.getName();
字符串produkCode=receipt.getCode();
整数价格=收据。getPrice();
整数数量=收据。getQuantity();
字符串条件=receipt.getCondition();
NumberFormat formatter=新的十进制格式(“#,#,###”);
if(receipt.getId()==0){
holder.produkName.setText(“数据来源”);
holder.produkCode.setText(“-”);
holder.price.setText(“-”);
}否则{
试一试{
holder.produkName.setText(produkName);
holder.produkCode.setText(produkCode);
holder.itemCondition.setText(条件);
holder.itemQuantity.setText(qty.toString());
holder.price.setText(formatter.format(price)+“”);
}捕获(NullPointerException ne){
ne.printStackTrace();
}
}
final int now=Integer.parseInt(holder.itemQuantity.getText().toString());
holder.buttonPlus.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//国际关系;
//添加++;
//res=现在+添加;
//holder.itemQuantity.setText(res+“”);
当前整数=Integer.parseInt(holder.itemQuantity.getText().toString());
电流=电流+1;
holder.itemQuantity.setText(current.toString());
收据.设置数量(当前);
((DaftarCartFragment)片段);
}
});
holder.buttonMinus.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//国际关系;
//减法++;
//res=现在-减去;
//holder.itemQuantity.setText(res+“”);
当前整数=Integer.parseInt(holder.itemQuantity.getText().toString());
如果(当前>0){
电流=电流-1;
}
holder.itemQuantity.setText(current.toString());
收据.设置数量(当前);
((DaftarCartFragment)片段);
}
});
holder.trashIcon.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
holder.itemView.setVisibility(View.GONE);
((DaftarCartFragment)片段);
mReceiptList.remove(holder.getAdapterPosition());
notifyItemRemoved(holder.getAdapterPosition());
notifyItemRangeChanged(holder.getAdapterPosition(),mReceiptList.size());
}
});
}
@凌驾
public int getItemCount(){
int size=0;
试一试{
size=mReceiptList.size();
}捕获(NullPointerException ne){
ne.printStackTrace();
尺寸=0;
}捕获(例外e){
e、 printStackTrace();
尺寸=0;
}
返回大小;
}
/*
视图持有者类
*/
公共类RecyclerVH扩展了RecyclerView.ViewHolder
{
整数id;