Android购物车加减代码
时间: 2023-11-03 16:55:27 浏览: 111
Android 购物车加减功能的实现代码
5星 · 资源好评率100%
以下是一个简单的 Android 购物车加减的代码示例:
首先,在购物车列表项布局中添加加减按钮:
```xml
<Button
android:id="@+id/btn_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"/>
<TextView
android:id="@+id/tv_quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"/>
<Button
android:id="@+id/btn_minus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"/>
```
然后,在购物车列表项的适配器中,为加减按钮设置点击监听器,并实现加减操作:
```java
public class ShoppingCartAdapter extends RecyclerView.Adapter<ShoppingCartAdapter.ViewHolder> {
private List<CartItem> mCartItems;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView tvName;
public TextView tvPrice;
public Button btnAdd;
public TextView tvQuantity;
public Button btnMinus;
public ViewHolder(View itemView) {
super(itemView);
tvName = itemView.findViewById(R.id.tv_name);
tvPrice = itemView.findViewById(R.id.tv_price);
btnAdd = itemView.findViewById(R.id.btn_add);
tvQuantity = itemView.findViewById(R.id.tv_quantity);
btnMinus = itemView.findViewById(R.id.btn_minus);
}
}
public ShoppingCartAdapter(List<CartItem> cartItems) {
mCartItems = cartItems;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cart, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
final CartItem item = mCartItems.get(position);
holder.tvName.setText(item.getName());
holder.tvPrice.setText(String.format(Locale.getDefault(), "%.2f", item.getPrice()));
holder.tvQuantity.setText(String.valueOf(item.getQuantity()));
holder.btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int quantity = item.getQuantity();
quantity++;
item.setQuantity(quantity);
holder.tvQuantity.setText(String.valueOf(quantity));
updateTotalPrice();
}
});
holder.btnMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int quantity = item.getQuantity();
if (quantity > 1) {
quantity--;
item.setQuantity(quantity);
holder.tvQuantity.setText(String.valueOf(quantity));
} else {
mCartItems.remove(item);
notifyDataSetChanged();
}
updateTotalPrice();
}
});
}
@Override
public int getItemCount() {
return mCartItems.size();
}
private void updateTotalPrice() {
double totalPrice = 0;
for (CartItem item : mCartItems) {
totalPrice += item.getPrice() * item.getQuantity();
}
// 更新购物车总价
// ...
}
}
```
以上代码中,`CartItem` 表示购物车中的每个商品,包含商品的名称、单价和数量等信息。在 `ViewHolder` 中为加减按钮设置点击监听器,并在监听器中实现相应的加减操作。在 `updateTotalPrice` 方法中计算购物车总价,并更新购物车页面中的总价显示。
注意,以上代码只是一个示例,实际上购物车的实现可能会更加复杂,需要根据具体的业务需求进行调整。
阅读全文