Android Studio实现花店App

2024-06-04 4314阅读

项目目录

  • 一、项目概述
  • 二、开发环境
  • 三、详细设计
    • 1、数据源
    • 2、数据库
    • 3、逻辑简介
    • 四、运行演示
    • 五、源码获取

      一、项目概述

      花店App使用SQLite数据库、SharedPreferences、RecycleView、Fragment、Adapter等技术完成,数据库的CRUD贯穿几乎所有功能,系统面向的对象分为前台用户和后台管理员,前台用户主要是查看和购买商品等,后台管理员主要负责添加、修改或者删除商品,添加物流信息等。

      启动应用,进入欢迎页面,倒计时5秒进入登录页面,选择注册,注册成功后自动跳转至登录页面。登录成功进入主页面,底部导航栏默认显示首页,最上面是轮播图,中间的搜索框可以输入商品名称进行检索,下面可以选择商品的分类,展开对应列表进行滚动查看。点击任意商品进入商品详情页面,可以收藏和加购,左下角能看到商品的收藏量,还能看到其他已购买用户对于商品的评论。在购物车中可以勾选想要下单的商品,调整数量,合计金额会随之变化,可以选择删除商品。点击结算,进入结算页面,选择收货地址。若没有可以添加收货地址,输入收件人的姓名、手机号和地点即可添加成功。余额充足则购买成功,自动返回到购物车页面。在订单页面能查看所有的购买记录,点击收货可以对商品进行评论,还能长按删除已经发表的评论。点击任意订单,可以进入查看物流页面,这里可以看到当前物流信息,由管理员添加物流地点。搜索框中输入订单编号即可查询相应订单。个人信息页面,点击从相册上传新头像;个人信息可以修改昵称和性别;账号安全能够修改密码;我的余额能够充值和提现;地址管理能添加、删除和修改地址,还能设置默认地址;我的收藏能看到所有收藏商品;浏览记录能查看所有浏览过的商品;关于店铺可以查看店铺的详情;退出登录可以退出当前登录的账号,返回到登录页面。

      使用默认的管理员账号登录系统,进入首页导航栏,可以长按删除商品,单击编辑商品信息,点击添加商品信息。在订单导航栏能查看和搜索所有用户的订单,进入查看物流页面,可以删除和添加物流信息。在个人信息导航栏,能够修改昵称和性别,更换性别时会自动切换头像;账号安全可以修改密码;我的余额能够充值和提现;关于店铺可以修改店铺的信息;退出登录可以退出当前登录的账号,返回到登录页面。

      总体而言,系统设计逻辑清晰合理,用户提示友好,使用体验良好,界面美观大方,功能丰富齐全。

      Android Studio实现花店App 第1张

      二、开发环境

      Android Studio实现花店App 第2张

      三、详细设计

      1、数据源

      花店App的数据源存放于assets目录下的db,json文件中,包含shop数组、store对象和user数组。在App初次使用时会解析JSON文件,存储到数据库,后续增删改查逻辑就与JSON文件无关了。

      • typeId表示商品类别,0-4分别为:百合花、 玫瑰花、 康乃馨、向日葵、风信子;
      • title表示商品名称,体现出花束的特点;
      • img表示商品图片,值为drawable目录下的图片名称,shop0_1的命名方式代表类别0的第一个商品的图片;
      • content表示商品宣传内容,就是广告词。
      • price表示商品价格,精确到小数点后2位。

        Android Studio实现花店App 第3张

        在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本可以改变命运的经典著作:

            1. 《寿康宝鉴》在线阅读白话文
            2. 《欲海回狂》在线阅读白话文
            3. 《阴律无情》在线阅读白话文
            4. 《了凡四训》在线阅读白话文
            5.    电子书百度网盘下载链接

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]