一、项目概述
花店App使用SQLite数据库、SharedPreferences、RecycleView、Fragment、Adapter等技术完成,数据库的CRUD贯穿几乎所有功能,系统面向的对象分为前台用户和后台管理员,前台用户主要是查看和购买商品等,后台管理员主要负责添加、修改或者删除商品,添加物流信息等。
启动应用,进入欢迎页面
,倒计时5秒进入登录页面
,选择注册,注册成功
后自动跳转至登录页面。登录成功进入主页面,底部导航栏默认显示首页
,最上面是轮播图
,中间的搜索框
可以输入商品名称进行检索,下面可以选择商品的分类,展开对应列表进行滚动查看。点击任意商品进入商品详情页面
,可以收藏和加购
,左下角能看到商品的收藏量,还能看到其他已购买用户对于商品的评论
。在购物车
中可以勾选想要下单的商品,调整数量,合计金额会随之变化,可以选择删除商品。点击结算,进入结算页面
,选择收货地址
。若没有可以添加收货地址,输入收件人的姓名、手机号和地点即可添加成功。余额充足则购买成功,自动返回到购物车页面。在订单页面
能查看所有的购买记录,点击收货可以对商品进行评论,还能长按删除
已经发表的评论。点击任意订单,可以进入查看物流页面
,这里可以看到当前物流信息,由管理员添加物流地点。搜索框中输入订单编号即可查询相应订单。个人信息页面
,点击从相册上传新头像;个人信息
可以修改昵称和性别;账号安全
能够修改密码;我的余额
能够充值和提现;地址管理
能添加、删除和修改地址,还能设置默认地址
;我的收藏
能看到所有收藏商品;浏览记录
能查看所有浏览过的商品;关于店铺
可以查看店铺的详情;退出登录
可以退出当前登录的账号,返回到登录页面。
使用默认的管理员账号登录系统,进入首页导航栏,可以长按删除商品,单击编辑商品信息,点击添加商品信息。在订单导航栏能查看和搜索所有用户的订单,进入查看物流页面,可以删除和添加物流信息。在个人信息导航栏,能够修改昵称和性别,更换性别时会自动切换头像;账号安全可以修改密码;我的余额能够充值和提现;关于店铺可以修改店铺的信息;退出登录可以退出当前登录的账号,返回到登录页面。
总体而言,系统设计逻辑清晰合理,用户提示友好,使用体验良好,界面美观大方,功能丰富齐全。
二、开发环境
三、详细设计
1、数据源
花店App的数据源存放于assets目录下的db,json
文件中,包含shop数组、store对象和user数组。在App初次使用时会解析JSON文件,存储到数据库,后续增删改查逻辑就与JSON文件无关了。
- typeId表示商品类别,0-4分别为:百合花、 玫瑰花、 康乃馨、向日葵、风信子;
- title表示商品名称,体现出花束的特点;
- img表示商品图片,值为drawable目录下的图片名称,shop0_1的命名方式代表类别0的第一个商品的图片;
- content表示商品宣传内容,就是广告词。
- price表示商品价格,精确到小数点后2位。
在OpenActivity
中读取和解析JSON数据,存储到数据库,解析方式和美食外卖系统相同。
JSONArray shopList = jsonObject.getJSONArray("shop");
JSONArray userList = jsonObject.getJSONArray("user");
JSONObject store = jsonObject.getJSONObject("store");
2、数据库
定义了一个名为MySqliteOpenHelper的类,它是SQLiteOpenHelper的子类,用于管理SQLite数据库的生命周期,包括创建、升级和管理数据库连接。数据库名为store.db
,共有10张表,分别对应10个实体类。
//_id为主键并且自增长一般命名为_id
String userSql = "create table user(id integer primary key autoincrement,account, password,name,sex,photo,userType,balance)";//用户
String storeSql = "create table store(id integer primary key autoincrement,name,content,img,address,phone)";//店铺
String addressSql = "create table address(id integer primary key autoincrement,userId,name,phone,location,isDefault)";//地址
String shopSql = "create table shop(id integer primary key autoincrement,typeId,title,img,content,price,date)";//商品
String browseSql = "create table browse(id integer primary key autoincrement,shopId,userId)";//浏览
String cartSql = "create table cart(id integer primary key autoincrement,shopId,userId,amount,isSelect)";//购物车
String ordersSql = "create table orders(id integer primary key autoincrement,userId,shopId,number,amount,date,name,phone,location,isComment)";//订单
String commentSql = "create table comment(id integer primary key autoincrement,shopId,userId,content,date)";//评论
String collectSql = "create table collect(id integer primary key autoincrement,shopId,userId)";//收藏
String logisticsSql = "create table logistics(id integer primary key autoincrement,ordersId,address,time)";//物流
3、逻辑简介
-
MainActivity
类的主要作用是作为应用程序的主界面,提供了一个底部导航栏,用户可以通过点击不同的单选按钮来切换不同的片段。同时,它还实现了双击返回键退出应用程序的逻辑。在onCreate方法中,设置了活动的布局和初始化了一些视图组件,而在setViewListener和initView方法中,设置了视图的点击事件和样式。switchFragment
方法用于动态地切换片段,而onKeyDown
方法用于处理用户的按键事件。 -
HomeFragment
实现了一个带有轮播图、选项卡、搜索功能和商品列表的主页界面。代码中的onCreateView
方法负责加载布局和初始化视图,initView
方法初始化页面布局,包括设置轮播图、选项卡和商品列表,以及加载数据。通过点击搜索图标或在搜索框中输入文本进行搜索商品,并根据选项卡选择的类型加载对应的商品数据。点击商品列表项可以查看商品详情,长按商品列表项可删除商品。 -
CartFragment
负责管理用户的购物车。其中包括初始化视图、加载数据、保存购物车项数量和选择状态、更新总价格等功能。它使用RecyclerView
和适配器来展示购物车中的商品列表,并响应用户的操作,如增加商品数量、减少商品数量、选择商品、结算和清空购物车等。代码中还包括与数据库交互的操作,通过查询和更新数据库记录来实现购物车数据的持久化存储和更新。 -
OrderFragment
包含了加载订单数据、搜索订单、查看订单详情以及添加评论的功能。该片段使用了MySqliteOpenHelper
类与SQLite
数据库进行交互,并通过RecyclerView
和适配器来展示订单列表。用户可以通过输入搜索内容来过滤订单,并可以点击订单项查看详细信息或添加评论。该片段提供了一种方便的方式来管理和处理订单信息。 -
UserFragment
包含了显示用户个人信息、修改头像、查看个人信息、账号安全、钱包、地址管理、收藏、浏览记录等功能。该片段使用了MySqliteOpenHelper
类与SQLite
数据库进行交互,并通过Glide
库加载用户头像。用户可以通过点击不同的选项来跳转到相关页面进行操作,例如修改个人信息、修改密码等。还包括退出登录功能,点击按钮后将清除用户登录信息并跳转到登录页面。用户还可以从相册中选择图片作为头像,并将选择的图片更新到数据库中。该片段提供了一个个人中心界面,方便用户管理个人信息和进行相关操作。
四、运行演示
- 系统有2个默认账号:前台用户(
账号user,密码123456
);后台管理员(账号admin,密码123456
) - 将电脑上的图片拖拽到夜神模拟器中即可上传到相册,方便用户注册时上传图像。
- 管理员在编辑或者添加商品时,需要填写图片名。该图片必须在
drawable
目录中存在,否则无法正常显示。
Android Studio实现花店App
五、源码获取
以下两种方式都可以获取源代码:
直接点击右侧链接下载源代码 | Android Studio实现花店App |
---|---|
关注公众号《 萌新加油站 》 | 后台回复:花店 |
🚀Android项目专栏有你错过的精彩内容 |
---|
Android Studio实现订餐系统 |
Android Studio实现考试管理系统 |
Android Studio实现饮食搭配系统 |
Android Studio实现美食外卖系统 |
Android Studio实现天气预报系统 |
最后推荐4本可以改变命运的经典著作: