recyclerview.addOnItemTouchListener Мне нужно добавить несколько продуктов в корзину. - PullRequest
0 голосов
/ 28 ноября 2018

Я получаю только один продукт для PlaceOderActivity.Мне нужно несколько продуктов в корзину
Мне нужно несколько продуктов для размещения заказа

recyclerview.addOnItemTouchListener(new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {
                        ProductsList selItem =  listItems.get(position);
                        final String[] strings = {
                                selItem.getProductName(),
                                selItem.getSalePrice(),
                                String.valueOf(selItem.getQnty()),
                        };
                        Log.w(TAG, Arrays.toString(strings));
                        final String itemname =  listItems.get(position).getProductName();
                       final float price = Float.parseFloat(listItems.get(position).getSalePrice());
                      final int qnty =  listItems.get(position).getQnty();
                      ButtonBtn.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                            Intent intent = new Intent(ProductListActivity.this,PlaceOderActivity.class);
                            intent.putExtra("itemname",itemname);
                            intent.putExtra("Price",price);
                            intent.putExtra("qnty",qnty);
                            intent.putExtra("strings",strings);

                            startActivity(intent);
                            }
                        });
                        }
                })
        );

1 Ответ

0 голосов
/ 28 ноября 2018

По сути, вы просто отслеживаете последний продукт, который пользователь добавил в корзину.

Каждый раз, когда ваш код достигает вашего RecyclerItemClickListener, вы заменяете предыдущий элемент новым.

То, что вам нужно объявить, это (как свойство класса):

private List<Product> productsList = new ArrayList()

Каждый раз, когда пользователь нажимает, чтобы добавить товар, вы просто добавляете его в список следующим образом:

productsList.add(Product)

А затем вы можете сериализовать и десериализовать список в ваших дополнениях Intent или даже просто сохранить сериализованную строку в файл кэша, который вы можете загрузить в следующем упражнении.

Вот лучшепример:

public class Product {

   /** Property name */
   String name;

   /** Property salePrice */
   String salePrice;

   /** Property quantity */
   String quantity;

   /**
    * Constructor
    */
   public Product() {
   }

   /**
    * Gets the name
    */
   public String getName() {
      return this.name;
   }

   /**
    * Sets the name
    */
   public void setName(String value) {
      this.name = value;
   }

   /**
    * Gets the salePrice
    */
   public String getSalePrice() {
      return this.salePrice;
   }

   /**
    * Sets the salePrice
    */
   public void setSalePrice(String value) {
      this.salePrice = value;
   }

   /**
    * Gets the quantity
    */
   public String getQuantity() {
      return this.quantity;
   }

   /**
    * Sets the quantity
    */
   public void setQuantity(String value) {
      this.quantity = value;
   }
}

Теперь вам нужен список продуктов в вашей ProductListActivity, и каждый раз, когда пользователь добавляет продукт в корзину, вы добавляете его в список, используя list.add () вместо того, что вы делали ввашей ModelCart с помощью вашего сеттера, который каждый раз заменяет список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...