使用Android stdio实现,请给出代码, 实现商品详情页。 要求: 1. 点击某一个商品进入本商品的详情页,详情页数据包括商品图片、商品名称、商品价格。 2. 商品详情页底部包含一个“购买”按钮,点击购买后,跳转到购物车页面。 3. 购物车页面可实现商品数量的增减、商品的删除以及总价格计算功能。
时间: 2024-02-21 10:00:17 浏览: 76
好的,以下是我给出的一个简单的实现,仅供参考。
商品详情页的布局文件(detail_layout.xml):
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/product_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/product_image" />
<TextView
android:id="@+id/product_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Product Name" />
<TextView
android:id="@+id/product_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Product Price" />
<Button
android:id="@+id/buy_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Buy" />
</LinearLayout>
```
商品详情页的活动(DetailActivity.java):
```
public class DetailActivity extends AppCompatActivity {
private ImageView mProductImage;
private TextView mProductName;
private TextView mProductPrice;
private Button mBuyButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_layout);
mProductImage = (ImageView) findViewById(R.id.product_image);
mProductName = (TextView) findViewById(R.id.product_name);
mProductPrice = (TextView) findViewById(R.id.product_price);
mBuyButton = (Button) findViewById(R.id.buy_button);
// TODO: 根据商品ID从数据库或网络获取商品信息并显示在布局中
mBuyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DetailActivity.this, ShoppingCartActivity.class);
startActivity(intent);
}
});
}
}
```
购物车页面的布局文件(shopping_cart_layout.xml):
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/product_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<TextView
android:id="@+id/total_price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Total Price: $0.00" />
<Button
android:id="@+id/checkout_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Checkout" />
</LinearLayout>
</LinearLayout>
```
购物车页面的活动(ShoppingCartActivity.java):
```
public class ShoppingCartActivity extends AppCompatActivity {
private ListView mProductList;
private TextView mTotalPrice;
private Button mCheckoutButton;
private List<Product> mProducts; // 商品列表
private ProductAdapter mAdapter; // 商品适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shopping_cart_layout);
mProductList = (ListView) findViewById(R.id.product_list);
mTotalPrice = (TextView) findViewById(R.id.total_price);
mCheckoutButton = (Button) findViewById(R.id.checkout_button);
mProducts = new ArrayList<>(); // 初始化商品列表
mAdapter = new ProductAdapter(this, mProducts); // 初始化商品适配器
mProductList.setAdapter(mAdapter); // 设置商品列表的适配器
mCheckoutButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO: 实现结算功能
}
});
}
// 商品适配器
private class ProductAdapter extends ArrayAdapter<Product> {
public ProductAdapter(Context context, List<Product> products) {
super(context, 0, products);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.product_item_layout, parent, false);
}
Product product = getItem(position); // 获取当前位置的商品信息
TextView productName = (TextView) convertView.findViewById(R.id.product_name);
TextView productPrice = (TextView) convertView.findViewById(R.id.product_price);
Button productDelete = (Button) convertView.findViewById(R.id.product_delete);
productName.setText(product.getName());
productPrice.setText(String.format("$%.2f", product.getPrice()));
productDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mProducts.remove(position); // 从商品列表中移除对应的商品
mAdapter.notifyDataSetChanged(); // 刷新商品列表
updateTotalPrice(); // 更新总价格
}
});
return convertView;
}
}
// 更新总价格
private void updateTotalPrice() {
double totalPrice = 0;
for (Product product : mProducts) {
totalPrice += product.getPrice();
}
mTotalPrice.setText(String.format("Total Price: $%.2f", totalPrice));
}
// 商品类
private class Product {
private String mName;
private double mPrice;
public Product(String name, double price) {
mName = name;
mPrice = price;
}
public String getName() {
return mName;
}
public double getPrice() {
return mPrice;
}
}
}
```
以上是我给出的一个简单的实现,可能还存在一些问题,需要根据实际情况进行调整和完善。希望能对你有所帮助。
阅读全文