如果购物车中的数量已经为1,但我尝试仅用数量更新购物车,但它将无法正常工作。我的购物车阵列不会更新。
这是我的viewHolder类,其中的数组menuItemArrayList由产品组成,而数组selectionItemArrayList是购物车。可以很好地计算出购物车中产品总和的整数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);
}
});
在每个块中,我正在遍历购物车数组以查看是否已输入产品。如果是,则只需更新数量,否则添加一个新的数组元素即所选产品。
答案 0 :(得分:2)
Equals不能那样工作,而不是
if (selectionNameCheck.equals(menuItemArrayList)) {
selectionNameCheck.selectionQuantity++;
}
使用:
if (menuItemArrayList.contains(selectionNameCheck)){
selectionNameCheck.selectionQuantity++;
}