- 描述:使用Android和SQLite开发一个购物车功能。(这个需求有点简单,就随便写一写,很多我都会跳过,如果不会的,专栏里有方法说明)
- 难度:中级
- 知识点(以下知识点大部分可在专栏中找到):
- 0、TableLayout的使用
- 1、关于icon在AndroidUI里的使用
- 2、Sqlite数据库的应用
- 3、adapter适配器的使用
- 4、ViewModel数据监听
- 5、xmlns-shape的使用
Android开发-购物车需求(折扣添加)
1、AndroidUI设计
风格普通,图片懒得去找。具体可以在专栏 【Android开发基础】三种常见的适配器(Adapter)、 【AndroidUI设计】icon矢量图标应用(低内存复应用) 中学习到
2、项目目录
3、数据库设计
很简单,就两张表,就不画图。
t_shop 商品表
字段名称 | 数据类型 | 字段描述 |
---|---|---|
id | int or bigint | 自增ID(唯一标识) |
image | int or varchar | 图片路径 |
name | varchar | 名称 |
price | int | 价格 |
business | int or varchar | 商家ID or 商家名称 |
discount | float | 折扣(让利) |
time | varchar | 营业时间 |
des | varchar | 描述 |
t_cart 购物车表
字段名称 | 数据类型 | 字段描述 |
---|---|---|
id | int or bigint | 自增ID(唯一标识) |
shop_id | int or bigint | 商品ID |
number | int | 数量 |
4、金额结算规则
按照折扣,只有第一份享受折扣。(当然还有第n份多少折,其实都很简单,就是for循环里嵌套了一个if判断)
public static Map<String, Object> CountZPrice(List<Cart> list){
Map<String, Object> map = new ArrayMap<>();
int z_number = 0;
float z_price = 0;
for (int i = 0; i < list.size(); i++) {
z_price += (list.get(i).getNumber() - 1) * list.get(i).getShop().getPrice() +
list.get(i).getShop().getPrice() * list.get(i).getShop().getDis()/10;
z_number += list.get(i).getNumber();
}
map.put("price", z_price);
map.put("number", z_number);
return map;
}
5、源代码
花了三小时写完这项功能,我这边又有的忙了,就草草结束吧。有空我会将源代码整理出来。其实在本专栏里这写都可以学到,初学者可以自己试一试
优快云下载地址
git地址(免费)