android - 添加到购物车不会更新数量,而是再次添加产品
问题描述
如果购物车中的数量已经为 1,我正在尝试仅使用数量更新购物车,但它不起作用。我的购物车数组不会更新。
这是我的 viewHolder 类,其中数组 menuItemArrayList 由产品组成,数组 selectionItemArrayList 是购物车。int totalAmount 是购物车中产品的总和,计算得很好。
public class DishViewHolder extends RecyclerView.ViewHolder{
public TextView tvMenuItemName, tvMenuItemDescription, tvMenuItemPrice;
public ImageView ivMenuItemImage;
public Button btnInitialAdd;
public ArrayList<SelectionItem> selectionItemArrayList = new ArrayList<>();
public DishViewHolder(@NonNull View itemView) {
super(itemView);
tvMenuItemName = itemView.findViewById(R.id.menu_item_name);
tvMenuItemDescription = itemView.findViewById(R.id.menu_item_description);
ivMenuItemImage = itemView.findViewById(R.id.image_menu_item);
tvMenuItemPrice = itemView.findViewById(R.id.menu_item_price);
btnInitialAdd = itemView.findViewById(R.id.button_initial_add);
btnInitialAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = getAdapterPosition();
for (SelectionItem selectionNameCheck: selectionItemArrayList) {
if (selectionNameCheck.equals(menuItemArrayList)) {
selectionNameCheck.selectionQuantity++;
} else {
SelectionItem selectionItem = new SelectionItem(menuItemArrayList.get(position).getMenuItemName(), menuItemArrayList.get(position).getMenuItemPrice(), 1);
selectionItemArrayList.add(selectionItem);
}
}
totalAmount += Integer.parseInt(tvMenuItemPrice.getText().toString());
amountAddListener.onAmountAdd(totalAmount, selectionItemArrayList);
}
});
在 for each 块中,我正在遍历购物车数组以查看是否已经输入了产品。如果是,则只需更新数量,否则添加一个新的数组元素,即所选产品。
解决方案
Equals 不能那样工作。而不是
if (selectionNameCheck.equals(menuItemArrayList)) {
selectionNameCheck.selectionQuantity++;
}
利用:
if (menuItemArrayList.contains(selectionNameCheck)){
selectionNameCheck.selectionQuantity++;
}
推荐阅读
- react-native - 弃用 componentWillMount 后如何获取异步数据?
- javascript - Firebase 查询 startAt 始终返回至少一项
- java - Azure 存储 Java API:检查存储帐户是否支持安全传输或不使用 java SDK
- javascript - ReactJs中组件的“功能未定义”onClick函数内联?
- ios - 继续 userActivity: NSUserActivity - 识别它来自 callkit 或联系人
- django - 通过外键关系限制 django 形式的选择
- python - Windows 安装 pytorch 0.3
- adaptive-design - 将网站桌面版布局与 Flipkart.com 或 Amazon.com 等移动版布局区分开来的技术是什么?
- python-3.x - Python 3、Selenium、Os - 如何上传文件夹中的所有图像
- angular - .forEach 不是 fromArray 角度上的函数