安卓大作业 图书管理APP

news2024/11/25 6:22:05

系列文章

安卓大作业 图书管理APP


文章目录

  • 系列文章
    • 1.背景
    • 2.功能
    • 3. 源代码获取


1.背景

本次实验设计的是一个图书管理系统,系统的整体目录如下:
在这里插入图片描述

2.功能

针对于每个java类或者Activity进行说明:
《1》Book.java中主要存放一些书籍的字段,来进行对于SQlite数据库操作时字段的处理。
主要字段:

private int id;
private String author;
private double price;
private int pages;
private String name;

《2》BookActivity 主要是书籍的Activity,他里面控制着一些最终界面数据库字段信息的显示,其中还包含了两个额外的功能,这部分知识也是我自己在课外学习来的,主要是对于点击事件的匹配,当按住一条数据,时间较短时,会执行这个方法,弹出一个Dialog

//短时间选中该书触发的事件———弹出修改对话框
lv_book.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Book book = bookList.get(position);
        showBookInfoDialog(book);
        // Toast.makeText(BookActivity.this,book.getName(),Toast.LENGTH_SHORT).show();
    }
});

在这里插入图片描述

其次当用户按住时间较长时,会触发这个方法

//长时间选中该书触发的事件———弹出删除对话框
lv_book.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        Book book = bookList.get(position);
        //Toast.makeText(BookActivity.this,book.getName(),Toast.LENGTH_SHORT).show();
        showDeleteInfoDialog(book);
        return false;
    }
});

在这里插入图片描述

《3》对于BookAdapter ,是图书的适配器,可以控制每个子项item的具体显示
《4》LoginActivity是最先调用的Activity,通过修改配置文件让程序刚开始加载便会跳转到这个界面:
在这里插入图片描述

《5》MainActivity 是整个系统的主要操作的Activity
《6》MyDatabaseHelper主要是继承SQLiteOpenHelper 实现一些数据库的操作的
在这里插入图片描述

《7》UpdateBookActivity 主要是来更新Book的信息的Activity

界面截图:
登录:
在这里插入图片描述

填写相关字段对于数据库操作:
在这里插入图片描述

点击添加按钮后会将数据添加到对应的数据表中:
在这里插入图片描述

点击显示后 可以看到插入的数据:
在这里插入图片描述

短暂按住item会触发一个click
在这里插入图片描述

点击修改会跳转到修改界面:
在这里插入图片描述

修改成功:
在这里插入图片描述

长时间按住会触发一个click
在这里插入图片描述

点击删除会将数据从数据库中给删除,当点击上面清空的Button后 同样会将数据给删除。
两者点击取消便会取消当前的操作 停留在当前的界面。

视频展示:

图书管理APP

3. 源代码获取

本次的分享就到这里啦,创作不易,感谢点赞收藏👍
感兴趣的小伙伴可以在评论区留言或者私信我哦💕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

春招后,功能测试还能找到工作了吗?

在一线大厂&#xff0c;没有测试这个岗位&#xff0c;只有测开这个岗位。这几年&#xff0c;各互联网大厂技术高速更新迭代&#xff0c;软件测试行业也正处于转型期。传统的功能测试技术逐步淘汰&#xff0c;各种新的测试技术层出不穷&#xff0c;测试人员的薪资也水涨船高。与…

网络安全从业人员会被AI智能取代吗?

随着ChatGPT的火爆&#xff0c;很多人开始担心网络安全从业人员会被AI取代。如果说网络安全挖洞的话&#xff0c;AI可能真的能取代。但是网络安全不仅仅只是挖洞&#xff0c;所以AI只是能缓解网络安全人员不足的情况&#xff0c;但是是不会取代人类的作用的。 就拿最近很火的C…

【详解】Java中的queue和deque、ArrayDeque

一 、队列(queue)简述 队列(queue)是一种常用的数据结构&#xff0c;在Java里面Queue是一个接口&#xff0c;它只是定义了一个基本的Queue应该有哪些功能规约。可以将队列看做是一种特殊的线性表&#xff0c;该结构遵循的先进先出原则。 Java中&#xff0c;LinkedList实现了Q…

RabbitMQ入门案例之发布订阅模式

前言 本文章主要介绍RabbitMQ的发布订阅模式&#xff0c;该模式下&#xff0c;消息为广播形式&#xff0c;一经发布则会进入交换机绑定的队列中&#xff0c;详细介绍可以阅读官方文档。 官网文档地址&#xff1a;https://rabbitmq.com/getstarted.html 什么是发布与订阅模式 …

对比K近邻算法与决策树算法在MNIST数据集上的分类性能

目录 1. 作者介绍2. K近邻算法与决策树算法介绍2.1 K近邻&#xff08;KNN&#xff09;简介2.2 决策树算法简介2.3 MNIST数据集简介&#xff1a; 3. K近邻算法和决策树算法在Mnist数据集分类实验对比3.1 K近邻算法对Mnist数据集分类实验3.2 K近邻代码实现3.3 决策树算法实验3.4 …

Vue3:组件高级(上)

Vue3&#xff1a;组件高级&#xff08;上&#xff09; Date: May 20, 2023 Sum: watch倾听器、组件的生命周期、组件之间的数据共享、vue3.x中全局配置axios 目标&#xff1a; 能够掌握 watch 侦听器的基本使用 能够知道 vue 中常用的生命周期函数 能够知道如何实现组件之间…

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

背景 Java 开发过程经常需要编写有固定格式的代码&#xff0c;例如说声明一个私有变量&#xff0c;logger或者bean等等。 对于这种小范围的代码生成&#xff0c;我们可以利用 IDEA 提供的 Live Templates功能。 刚开始觉得它只是一个简单的Code Snippet&#xff0c;后来发现…

msf渗透练习-震网三代

说明&#xff1a; 本章内容&#xff0c;仅供学习&#xff0c;不要用于非法用途&#xff08;做个好白帽&#xff09; &#xff08;一&#xff09;震网三代漏洞 “震网三代”官方漏洞编号是CVE-2017-8464&#xff0c;2017年6月13日&#xff0c;微软官方发布编号为CVE-2017-8464的…

Redis Cluster集群运维-03

1、Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异 常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c;哨兵的配置略微复杂&#xff0c;并且性能和高可…

【CSS】常见的选择器

1.标签选择器 语法 标签 { }作用 标签选择器用于选择某种标签比如 选择p标签&#xff0c;并设置背景颜色 p { background-color:yellow; }例子 选择div标签&#xff0c;并将其字体大小设置为100px&#xff0c;字体设置为"微软雅黑"&#xff0c;文字颜色设置为r…

怎么学习渗透测试?路线是什么

我知道很多人肯定觉得&#xff0c;报班什么的太贵了&#xff0c;但是人家贵有贵的道理 owap讲来讲去&#xff0c;还是那个样&#xff0c;但是有人给你解答问题是两个概念&#xff0c;有时候一个虚拟机都能卡死你很久&#xff0c;我就随便说说&#xff0c;我给你们想的学习路线…

2023网络安全工程师面试题汇总(附答案)

又到了毕业季&#xff0c;大四的漂亮学姐即将下架&#xff0c;大一的小学妹还在来的路上&#xff0c;每逢这时候我心中总是有些小惆怅和小激动…… 作为学长&#xff0c;还是要给这些马上要初出茅庐的学弟学妹们&#xff0c;说说走出校园、走向职场要注意哪些方面。 走出校园后…

基于XC7Z100的PCIe采集卡(GMSL FMC采集卡)

GMSL 图像采集卡 特性 ● PCIe Gen2.0 X8 总线&#xff1b; ● 支持V4L2调用&#xff1b; ● 1路CAN接口&#xff1b; ● 6路/12路 GMSL1/2摄像头输入&#xff0c;最高可达8MP&#xff1b; ● 2路可定义相机同步触发输入/输出&#xff1b; 优势 ● 采用PCIe主卡与FMC子…

服务器是什么?它是用来干什么的?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、服务器是什么&#xff1f; 二、服务器的作用 1、提高访问速度 2、提高安全性 三、云服务器与物理服务器 1、云服务器 云服务…

[架构之路-210]- 人人都是产品经理 - 互联网产品需求分析思路和方法笔记

目录 前言&#xff1a; 一、产品需求分析思路和方法--产品需求 1、产品需求的内涵 ①什么是产品&#xff1f; ②什么是需求&#xff1f; ③需求的产品的关系 ④案例分析&#xff1a; ⑤理解需求的误区 2、需求的分类及层次、规律、拆解用户需求 ①需求分类 ②需求层…

算法刷题-链表-设计链表

设计链表 707.设计链表思路代码其他语言版本 听说这道题目把链表常见的五个操作都覆盖了&#xff1f; 707.设计链表 力扣题目链接 题意&#xff1a; 在链表类中实现这些功能&#xff1a; get(index)&#xff1a;获取链表中第 index 个节点的值。如果索引无效&#xff0c;则…

MySQL数据库,从入门到精通:第二篇——MySQL关系型数据库与非关系型数据库的比较

MySQL数据库&#xff0c;从入门到精通&#xff1a;第二篇——MySQL关系型数据库与非关系型数据库的比较 1. RDBMS 与 非RDBMS1.1 关系型数据库(RDBMS)1.1.1 实质1.1.2 优势1.2 非关系型数据库(非RDBMS)1.2.1 介绍1.2.2 有哪些非关系型数据库1.2.3 NoSQL的演变1.3 小结 2. 关系型…

SQL开源替代品,诞生了

发明 SQL 的初衷之一显然是为了降低人们实施数据查询计算的难度。SQL 中用了不少类英语的词汇和语法&#xff0c;这是希望非技术人员也能掌握。确实&#xff0c;简单的 SQL 可以当作英语阅读&#xff0c;即使没有程序设计经验的人也能运用。 然而&#xff0c;面对稍稍复杂的查…

Python+QT停车场车牌识别计费管理系统-升级版

程序示例精选 PythonQT停车场车牌识别计费管理系统-升级版 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonQT停车场车牌识别计费管理系统-升级版>>编写代码&#xff0c;代…

RabbitMQ入门案例之Direct模式

前言 RabbitMQ的Direct模式是一种可以根据指定路由key&#xff0c;Exchang将消息发送到具有该路由key下的Queue下进行存储。也就类似于将数据写进指定数据库表中。这个路由Key可以类比为SQL语句中的&#xff1a;where routeKey … 官方文档地址&#xff1a;https://www.rabbi…