товары в корзине - PullRequest
       85

товары в корзине

0 голосов
/ 06 марта 2020

Привет, ребята, я работаю над приложением в магазине, и я обнаружил проблему с добавлением товаров в корзину, проблема в том, что я добавляю 1 товар, он добавлялся, но добавление более одного не работало, только последний продукт, который я добавьте, я использую общие настройки и его работу, когда закрываю приложение и переключаюсь между действиями, элемент остается в активности корзины, но проблема заключается в большем количестве элементов.

ProductView Activity

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