Android购物车具体实例
时间: 2023-11-03 21:51:39 浏览: 86
一个基本的 Android 购物车示例包括以下几个部分:
1. 商品列表:包含商品名称、价格、数量和添加到购物车按钮。
2. 购物车列表:包含已添加到购物车的商品列表,包括商品名称、数量和价格,以及删除按钮。
3. 计算总价:在购物车列表中,需要计算选中商品的总价,并显示在屏幕上。
4. 结算功能:用户可以点击结算按钮,进入支付页面完成购买。
这里提供一个简单的购物车示例代码:
1. activity_main.xml
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_total_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Total Price: $0" />
<ListView
android:id="@+id/lv_cart"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<Button
android:id="@+id/btn_checkout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Checkout" />
</LinearLayout>
```
2. cart_item.xml
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<TextView
android:id="@+id/tv_item_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Item Name" />
<TextView
android:id="@+id/tv_item_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$0" />
<TextView
android:id="@+id/tv_item_quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="x0" />
<Button
android:id="@+id/btn_remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remove" />
</LinearLayout>
```
3. MainActivity.java
```
public class MainActivity extends AppCompatActivity {
private ListView cartListView;
private TextView totalPriceTextView;
private Button checkoutButton;
private List<Item> itemList;
private List<Item> cartList;
private CartListAdapter cartListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
itemList = new ArrayList<>();
itemList.add(new Item("Item 1", 10));
itemList.add(new Item("Item 2", 20));
itemList.add(new Item("Item 3", 30));
itemList.add(new Item("Item 4", 40));
itemList.add(new Item("Item 5", 50));
cartList = new ArrayList<>();
cartListView = findViewById(R.id.lv_cart);
totalPriceTextView = findViewById(R.id.tv_total_price);
checkoutButton = findViewById(R.id.btn_checkout);
cartListAdapter = new CartListAdapter(this, cartList);
cartListView.setAdapter(cartListAdapter);
checkoutButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO: Implement checkout functionality
}
});
for (Item item : itemList) {
addCartItem(item);
}
}
private void addCartItem(final Item item) {
View cartItemView = LayoutInflater.from(this).inflate(R.layout.cart_item, null);
TextView itemNameTextView = cartItemView.findViewById(R.id.tv_item_name);
TextView itemPriceTextView = cartItemView.findViewById(R.id.tv_item_price);
final TextView itemQuantityTextView = cartItemView.findViewById(R.id.tv_item_quantity);
Button removeButton = cartItemView.findViewById(R.id.btn_remove);
itemNameTextView.setText(item.getName());
itemPriceTextView.setText("$" + item.getPrice());
final CartItem cartItem = new CartItem(item, 0);
cartList.add(cartItem);
itemQuantityTextView.setText("x" + cartItem.getQuantity());
removeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cartList.remove(cartItem);
cartListAdapter.notifyDataSetChanged();
updateTotalPrice();
}
});
cartListAdapter.notifyDataSetChanged();
updateTotalPrice();
}
private void updateTotalPrice() {
double totalPrice = 0;
for (CartItem cartItem : cartList) {
totalPrice += cartItem.getItem().getPrice() * cartItem.getQuantity();
}
totalPriceTextView.setText("Total Price: $" + totalPrice);
}
}
```
其中,Item 和 CartItem 分别表示商品和购物车中的商品条目。CartListAdapter 是购物车列表的适配器。在 addCartItem 方法中,我们将商品添加到购物车列表并更新适配器,然后更新总价。当用户点击删除按钮时,我们从购物车列表中删除相应的购物车条目,并更新适配器和总价。
阅读全文