最近应公司要求,到某大学进行毕设项目实训讲解,今天在课上讲解内容主要围绕在商城功能展开,因为没有服务器提供后台数据,所以使用虚拟数据,在代码中创建集合的用于展示。基本逻辑与后台服务提供数据的逻辑也相似。毕设中有需要相同功能的同学可以借鉴一下,以下的逻辑思路与实现代码。
代码实现效果图如下:
需求分析:
- 展示效果为四个界面,界面间都是通过前一个点击相关内容,跳转显示,故在此功能中应该需要创建四个Activity展示。
- 第一个界面为日常用品分类展示,上面为标题栏内容,下面为一个ListView,每一个item当中包括1个TextView和一个ImageView展示,而需要通过适配器加载显示数据。
- 第二个界面为选择分类后的具体商品展示,布局结构与分类界面相似,只不过每一个item的子布局更复杂一些。
- 第三个界面为购物车界面,点击商品列表界面右上角的购物车图标,即可跳转此界面,此界面分为上中下结构,上面为标题栏内容,下面包括总计金额和结算按钮,中间为选择购买的商品的列表,依然需要使用ListView展示,item的布局结构与商品列表中item的布局结构相似,只需要把购买按钮变成删除按钮即可。
- 第四个界面为支付界面,在此界面中可填写收货人的相关信息并选择支付方式,但是在毕设项目中并不能使用支付宝支付,故我只完成了布局效果,并没有对其支付和信息填写的逻辑进行代码实现。
在本篇博客中我首先会对于第一个页面的基本逻辑进行重点分析,实现代码进行具体展示。
查看效果图会发现,日常用品的分类应该需要一个List集合进行存放,然后每一种用品有包括多个商品对象,可以创建一个类用于表示商品信息,也便于对其进行操作。故我们创建商品类。
package com.animee.day06.hw;
/* 表示每一个用品对象*/
public class InfoBean {
private String pic; //图片地址
private String title; //标题
private String kind; //种类
private int count; //库存
private double price; //价格
private int buycount = 0; //购买数量
public InfoBean() {}
public InfoBean(String pic, String title, String kind, int count, double price, int buycount) {
this.pic = pic;
this.title = title;
this.kind = kind;
this.count = count;
this.price = price;
this.buycount = buycount;
}
public int getBuycount() {
return buycount;
}
public void setBuycount(int buycount) {
this.buycount = buycount;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public InfoBean(String pic, String title, String kind, int count, double price) {
this.pic = pic;