我只给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);
}
});
}
})
);
答案 0 :(得分:0)
基本上,您正在做的只是跟踪用户添加到购物车中的最后一个产品。
每次代码到达RecyclerItemClickListener时,您都用新的替换上一个项目。
您需要声明的是(作为类属性):
private List<Product> productsList = new ArrayList()
每次用户单击添加产品时,您只需将其添加到列表中,如下所示:
productsList.add(Product)
然后您可以序列化和反序列化Intent Extras中的列表,甚至只是将序列化的字符串保存到缓存文件中,即可在下一个活动中加载。
这是一个更好的例子:
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中通过使用setter替换的方式在列表中追加产品每次列出该列表。