购物车内的库存产品

时间:2020-03-06 12:54:20

标签: android-studio android-fragments android-activity sharedpreferences android-adapter

伙计们,我正在一家商店应用程序上工作,我发现在向购物车活动添加产品时出现问题,问题是当我添加1种产品时,它添加了,但添加了多个以上的产品并不能正常工作。添加 关闭应用程序并在活动之间进行切换时,我使用共享的首选项及其工作,但该项目保留在购物车活动中,但问题是有更多项目。

productView活动

   addToCart.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                if (cartList == null) {
                    cartList = new ArrayList<>();
                }
                cartClass product = new cartClass(b.getString("ItemTitle"), b.getString("ItemPrice"), b.getInt("ItemImage"));
                cartList.add(product);
                saveItems();
            }
        }
public void saveItems()
{
    SharedPreferences sharedPreferences = getSharedPreferences("shared preferences",MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();

    Gson gson = new Gson();
    String json = gson.toJson(cartList);
    editor.putString("CartList",json);
    editor.apply();
}

购物车活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cart);


    ItemsAddedToCart = findViewById(R.id.itemsAddRV);
    Total = findViewById(R.id.TotalPrice);
    buy = findViewById(R.id.buy_);
    back = findViewById(R.id.back_b);
    home = findViewById(R.id.floatingHome);


    loadItems();

    fillCart = new FillCart(this, cartList, Total);
    ItemsAddedToCart.setAdapter(fillCart);
    ItemsAddedToCart.setLayoutManager(new LinearLayoutManager(this));
    i++;
}

public void loadItems()
{
    SharedPreferences sharedPreferences = getSharedPreferences("shared preferences",MODE_PRIVATE);
    Gson gson = new Gson();
    String json = sharedPreferences.getString("CartList",null);
    Type type = new TypeToken<ArrayList<cartClass>>() {}.getType();
    cartList = gson.fromJson(json,type);

    if(cartList == null)
    {
        cartList = new ArrayList<>();
    }
}

购物车适配器已绑定

@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
    cartClass cart = cartList.get(position);

    ((ViewHodler) holder).image.setImageResource(cart.getImage());
    ((ViewHodler) holder).title.setText(cart.getTitle());
    ((ViewHodler) holder).price.setText(cart.getPrice());
}

0 个答案:

没有答案