Android Studio实现二手交易系统

一、项目概述

二手交易系统使用了Android四大组件、Fragment、SQLite数据库、多线程和网络通信等技术。用户伴随着欢迎页面进入应用,然后注册和登录,可以记住密码,下次就无需输入。在首页可以看到学习、生活、体育和电子用品四大物品分类,点击可以查看每一类别的物品列表,单击物品列表进入物品详情页面,可以对物品进行评论和收藏。在发布页面可以上传自己闲置物品的信息,包括图片、类别、名称、详情、价格和自己的联系方式等,然后发布即可。在个人信息页面可以查看自己的闲置物品、自己收藏的物品以及自己的评论,在自己的物品和自己的收藏页面,依然可以单击进入物品详情页面。还可以查看软件版本和分享软件,点击每日名言可以推送名言警句的通知,最后可以利用广播机制退出登录。

本应用的通用逻辑就是:物品/评论的发布者可以对自己发布的物品/评论进行长按删除,但无法删除他人发布的物品/评论;并且当物品删除的同时,物品的所有收藏和所有评论也会一并删除,这符合正常逻辑。总之,二手交易系统覆盖了安卓所有基础知识点,在页面绘制上也采用了material设计,使用了精美图标,给予用户非常好的使用体验。
在这里插入图片描述

二、开发环境

在这里插入图片描述

三、详细设计

3.1、数据库设计

数据库设计决定了应用的功能逻辑,系统包含四张数据表:用户表、物品表、评论表和收藏表。每个用户可以发布多个物品,可以发表多个评论,还可以收藏多个物品,因此表之间都是多对多的关系。

在这里插入图片描述
创建数据库和数据表都讲过很多遍,也是安卓开发必备技能。建库建表后就要新建对数据表的操作类,比如UserDao、GoodsDao等。通过继承SQLiteOpenHelper类,读写数据库,定义对表格数据的增删改查方法。

    // 数据库首次创建时创建数据表
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_USER);
        db.execSQL(CREATE_TABLE_GOODS);
        db.execSQL(CREATE_TABLE_COMMENT);
        db.execSQL(CREATE_TABLE_SAVE);
    }

3.2、网络通信

3.2.1、申请API KEY

注册和登录天行数据官网(https://www.tianapi.com/)。
在这里插入图片描述

搜索“励志古言”接口,然后申请该接口。
在这里插入图片描述

点击右上角控制台,然后在我的免费接口中查看接口的剩余次数。
在这里插入图片描述

我的秘钥KEY中可以查看自己的API KEY,将其复制粘贴到项目的HttpUtil.java文件中的API_KEY字符串中。
在这里插入图片描述

3.2.2、HTTP请求

创建一个简单的HTTP客户端工具类,可以用来向服务端发送HTTP请求并处理返回的响应。在代码中,sendOkHttpRequest方法接受两个参数:一个是包含API URL的字符串address,另一个是okhttp3.Callback接口的实现类callback,它定义了当请求完成时如何处理响应和错误。如果模拟器无网络,就会请求失败,直接返回,并作出提示。只要有网络,就会得到服务器返回的数据,之后调用parseShowData方法解析数据。

    /* 每日名言*/
    private void showSaying() {
        // 客户端向服务器发送Http的Get请求
        HttpUtil.sendOkHttpRequest(HttpUtil.INDEX_URI, new okhttp3.Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                // 如果模拟器无网络,就会请求失败,直接返回
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getContext(), "模拟器无网络", Toast.LENGTH_SHORT).show();
                    }
                });
                return;
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                // 如果api次数充足,得到服务器返回的具体内容
                String result = response.body().string();
                // 解析json字符串
                parseShowData(result);
            }
        });
    }

3.2.3、Gson解析

parseShowData方法是设计来解析从天工励志古言API获取的JSON结果,并据此执行后续操作。该方法接收一个String类型的参数result,它代表了API返回的JSON格式的数据。

  • 首先,使用Gson库将这个JSON字符串反序列化为Saying对象。这里Saying是一个自定义的名言类,它有相应的字段和构造函数来映射JSON数据。

  • 然后,通过getActivity().runOnUiThread(new Runnable() {...}方法确保后续的UI更新操作在主线程上执行。这是因为Android不允许在非主线程上直接操作UI组件。

  • Runnablerun方法内部,代码首先检查解析后的saying对象是否为null以及它的状态码是否为200。状态码200意味着API调用成功。如果这些条件中的任何一个不满足,就会弹出一个Toast通知,告知用户"当前KEY不可用或API可用次数不足"。

如果解析成功,代码将继续执行,获取saying对象中的ResultDTO实例,并将其传递给sendNotification方法,在应用内显示推送通知。

    // 解析JSON字符串
    private void parseShowData(String result) {
        Saying saying = new Gson().fromJson(result, Saying.class);
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                // 如果解析结果为null,或者结果码不为200,则当前key不可用或者API可用次数不足
                if (saying == null || saying.getCode() != 200) {
                    Toast.makeText(getContext(), "当前KEY不可用或API可用次数不足", Toast.LENGTH_SHORT).show();
                    return;
                }
                Saying.ResultDTO resultDTO = saying.getResult();
                sendNotification(resultDTO);
            }
        });
    }

3.3、四大组件应用

  • Activity:在欢迎、注册、登录、物品详情等活动中都用到了Activity跳转、传值等功能。
  • Service:在MyIntentService类中的onHandleIntent(Intent intent)中打印子线程的ID。
  • ContentProvider:在ContentProvider类中重写了querygetType等方法,提供其他应用访问本应用数据库的接口。
  • Broadcast:在MineFragment类中发送自定义广播,在BaseActivity中定义和注册接收器接收广播,可以让当前登录用户强制下线。

四、运行演示

  • 物品/评论的发布者可以对自己发布的物品/评论进行长按删除,但无法删除他人发布的物品/评论;并且当物品删除的同时,物品的所有收藏和所有评论也会一并删除,这符合正常逻辑。
  • 上传的图片不宜过大,确保在300KB以下,否则因为模拟器内存不足无法渲染。
  • 电脑上传图片到模拟器相册,只需要拖拽本地图片到模拟器中即可。
  • 每日名言根据详细设计中的申请API KEY替换秘钥,建议使用夜神模拟器运行,能访问网络。

Android Studio实现二手交易系统

五、源码获取

♻️下面两种方式都可以获取源代码
1️⃣ 点击直接下载 Android Studio 二手交易系统
2️⃣关注公众号《 萌新加油站 》,后台回复: 二手

🚀Android项目专栏有你错过的精彩内容
Android Studio实现订餐系统
Android Studio实现考试管理系统
Android Studio实现图书馆订座系统
Android Studio实现学生信息管理系统
Android Studio实现前后台分离的选课系统

我强烈推荐4本可以改变命运的经典著作:

  1. 《寿康宝鉴》在线阅读白话文
  2. 《欲海回狂》在线阅读白话文
  3. 《阴律无情》在线阅读白话文
  4. 《了凡四训》在线阅读白话文
  5.    电子书百度网盘下载链接
  • 29
    点赞
  • 383
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论
### 回答1: 要实现一个校园二手交易系统,首先需要在Android Studio中创建一个新的项目。然后,需要确定系统的基本功能和要实现的界面。 系统的基本功能包括用户登录和注册、发布商品、浏览商品、私信聊天等。在Android Studio中,通过使用Firebase身份验证和实时数据库,可以轻松实现用户登录和注册功能。用户可以使用他们的学校电子邮箱进行注册和登录。 商品发布功能需要一个表单页面,用户可以输入商品名称、描述、价格和上传图片。通过Android Studio中的界面设计工具,可以轻松创建一个漂亮的表单页面并获取用户输入的信息。 浏览商品功能需要一个列表页面,显示所有发布的商品信息。可以通过RecyclerView控件在Android Studio中创建一个动态列表,根据数据库中的商品信息动态加载列表项。 私信聊天功能需要一个聊天界面,允许用户互相发送私信。可以使用Firebase实时数据库来实现机制并存储聊天消息。 除了基本功能外,还可以考虑一些额外的功能,如商品分类、商品搜索和评价功能等。通过使用Firebase的实时数据库查询功能,可以实现商品分类和搜索功能。评价功能可以在商品详情页面下方添加一个评价框,用户可以进行评价并展示评价列表。 在实现这个校园二手交易系统的过程中,可以利用Android Studio中的布局设计和界面管理工具,创建各个界面,并使用Java编写代码实现各个功能。 最后,在Android Studio中进行测试和调试,确保系统的稳定性和可靠性。同时,可以根据需要对用户界面进行优化,提升用户体验。 总而言之,使用Android Studio可以方便地实现一个校园二手交易系统,提供用户登录和注册、发布商品、浏览商品、私信聊天等基本功能,并可以根据需求添加额外的功能。 ### 回答2: Android Studio是一款功能强大的集成开发环境,可用于开发Android应用程序。要实现一个校园二手交易系统,我们可以利用Android Studio提供的各种工具和功能来完成以下任务: 1. 用户注册和登录:我们可以使用Android Studio中的界面设计工具创建用户注册和登录界面,并使用数据库存储用户的信息。 2. 商品发布和浏览:通过Android Studio的界面设计工具,我们可以创建一个页面,用户可以在这个页面上发布他们想要出售的商品的信息,包括商品的名称、价格、描述等。同时,我们还可以创建一个页面,用于展示所有发布的商品,供用户浏览和搜索。 3. 商品筛选和搜索:为方便用户找到所需商品,我们可以利用Android Studio的搜索功能实现商品的筛选和搜索功能。用户可以根据关键词、商品类别或者价格范围进行筛选和搜索。 4. 交易功能:用户可以在系统中找到感兴趣的商品后进行交流和协商价格。我们可以集成聊天功能,使用户能够直接在应用程序内部进行交流。 5. 订单管理:为了实现交易的安全与顺利进行,我们可以使用数据库来存储和管理订单信息。用户可以在系统中创建订单、查看订单状态以及提供反馈。 6. 用户评价和信用体系:为了提高交易的可信度,我们可以利用数据库存储买家和卖家的评价信息,并通过评价系统建立信用体系。用户可以根据卖家的评价信息决定是否进行交易。 通过上述步骤,我们可以利用Android Studio开发一个功能完善的校园二手交易系统。在开发过程中,我们还可以添加其他功能和细节,以增强用户的体验和系统的易用性。
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

振华OPPO

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值