【移动应用开发】Android持久化技术

news2024/11/28 6:32:12

目录

一、实现一个“我的图书馆” 

1. 用户登陆界面

1.1 运行截图

1.2 源代码

① 布局文件activity_login.xml

② res/values/strings.xml

③ LoginActivity.kt

④ 在AndroidManifest.xml注册LoginActivity.kt

2. 图书信息数据库和显示界面

2.1 功能实现截图

2.2 源代码

① activity_main.xml

② item_book.xml

③ activity_addbook.xml

④ DataBaseHelper

⑤ 实体类

⑥ 适配器Adapter

⑦ MainActivity

⑧ AddBookActivity


一、实现一个“我的图书馆” 

1. 用户登陆界面

① 创建一个LoginActivity,对应的布局文件activity_login。

具备两个TextView和两个EditText控件,分别用于显示和输入用户名和密码。

② 添加“注册”和“登陆”两个按钮(Button)。

③ 添加“记住我”功能:插入一个CheckBox控件,当用户勾选该勾选框,当点击“登陆”按钮时,判断该勾选框,如果勾选,则把用户名和密码保存起来,要求采用文本存储方式保存下来。

④ 点击“注册”,可以根据用户名和密码对应的EditText,将用户名和密码保存起来,要求采用SharedPreferences保存用户名和密码数据,同时需要确保用户名不重复(区分大小写)

⑤ 点击“登陆”,通过SharedPreferences读取用户密码数据,并进行匹配,只有匹配成功,才能成功登陆,跳转到MainActivity(下一个设计内容)

1.1 运行截图

在未注册的情况下直接登录:弹窗提示登录失败

第一次注册:提示注册成功并清空输入框

打开Device Explorer

/data/data/com.ryx.sharepreferences/shared_prefs/LoginActivity.xml文件

保存了注册信息

输入相同用户名进行注册:弹窗提示注册失败

登录:(失败案例)

     

      

选择记住我并点击登录按钮,跳转到MainActivity。   

再次启动:用户名和密码自动填充到EditText,复选框为选中状态

1.2 源代码

① 布局文件activity_login.xml

② res/values/strings.xml

③ LoginActivity.kt

④ 在AndroidManifest.xml注册LoginActivity.kt

2. 图书信息数据库和显示界面

(1)需要保存的信息:书本信息(下表左),和书本所属类别(下表右)。每本书有其所属的类别。

create table Book (
id integer primary key autoincrement,
author text,
price real,
pages integer,
name text

category_id integer

)

create table Category (
id integer primary key autoincrement
category_name text,
category_code integer)

使用SqlLite数据库创建数据库library,并创建Book和Category这两个表。往Category里插入2条默认书类别数据(如:经济类, 1)。

(2)界面设计

① 创建一个MainActivity,对应的布局为activity_main。

② 添加一个RecyclerView,用于显示所有的图书条目信息,每个条目显示书的名字、作者、类别和价格。

③ 添加一个“添加书目”的按钮,用于跳转进入AddBookActivity

④ 在AddBookActivity中,可以添加一本书的信息到数据库中。提示:AddBookActivity需要的组件包括:EditText、TextView、Button或Spinner。

提醒:可以在RecyclerView的适配器里面进行数据库的查询操作

2.1 功能实现截图

查看创建的数据库中的表格

       

一开始进入的主页面显示暂无图书,顶上有添加图书的按钮

点击添加图书按钮,进入添加图书页面:

输入图书信息,选择对应分类并添加图书:

弹出成功添加的提示并在主页显示

再添加一本图书如下:

         

2.2 源代码

① activity_main.xml

② item_book.xml

③ activity_addbook.xml

项目结构如下:

④ DataBaseHelper

⑤ 实体类

⑥ 适配器Adapter

⑦ MainActivity

⑧ AddBookActivity

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

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

相关文章

二百七十一、Kettle——ClickHouse增量导入数据清洗记录表

一、目的 在完成错误数据表任务后,需要对每条错误数据的错误字段及其字段值进行分析 Hive中原有SQL语句和ClickHouse现有SQL语句很大不同 二、Hive中原有代码 2.1 表结构 --31、静态排队数据清洗记录表 create table if not exists hurys_db.dwd_data_clean_…

kubernetes——part2-3 使用RKE构建企业生产级Kubernetes集群

使用RKE构建企业生产级Kubernetes集群 一、RKE工具介绍 RKE是一款经过CNCF认证的开源Kubernetes发行版,可以在Docker容器内运行。 它通过删除大部分主机依赖项,并为部署、升级和回滚提供一个稳定的路径,从而解决了Kubernetes最常见的安装复杂…

软件测试学习笔记丨Selenium学习笔记:css定位

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22511 本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 说明:本篇博客基于sel…

【瑞吉外卖】-day01

目录 前言 第一天项目启动 获取资料 创建项目 ​编辑 连接本地数据库 连接数据库 修改用户名和密码 ​编辑创建表 创建启动类来进行测试 导入前端页面 创建项目所需目录 检查登录功能 登录界面 登录成功 登录失败 代码 退出功能 易错点 前言 尝试一下企业级项…

【论文阅读】ESRGAN

学习资料 论文题目:增强型超分辨率生成对抗网络(ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks)论文地址:[1809.00219] ESRGAN:增强型超分辨率生成对抗网络代码:xinntao / ESRGAN&am…

【HarmonyOS】判断应用是否已安装

【HarmonyOS】判断应用是否已安装 前言 在鸿蒙中判断应用是否已安全,只是通过包名是无法判断应用安装与否。在鸿蒙里新增了一种判断应用安装的工具方法,即:canOpenLink。 使用该工具函数的前提是,本应用配置了查询标签querySch…

Linux内核-tmpfs虚拟文件系统

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软…

机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

市场应用背景 DELTA并联机械手是由三个相同的支链所组成,每个支链包含一个转动关节和一个移动关节,具有结构紧凑、占地面积小、高速高灵活性等特点,可在有限的空间内进行高效的作业,广泛应用于柔性上下料、包装、分拣、装配等需要…

基于SSM+小程序的购物管理系统1

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序的购物管理系统1,可以实现首页、个人中心、商品分类管理、商品信息管理、特价商品管理、用户管理、留言板管理、系统管理、订单管理等功能。方便用户对首页、商品…

Redis 事务 总结

前言 相关系列 《Redis & 目录》(持续更新)《Redis & 事务 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 事务 & 总结》(学习总结/最新最准/持续更新)《Redis & 事务…

正点原子阿尔法ARM开发板-IMX6ULL(十一)——IIC协议和SPI协议--AP3216C环境光传感器和ICM20608六轴传感器

文章目录 一、前言二、 IIC协议2.1 协议解读2.1.1 起始位、停止位、数据传输2.1.2 写时序2.1.3 读时序 2.2 代码分析2.3 AP3216C环境光传感器的代码分析 三、SPI协议3.1 协议解读3.2 代码分析3.3 ICM-20608六轴传感器代码分析 一、前言 看了IIC,我之前毕设用过这个…

Vmware虚拟机解决摄像头无效,相机失效

问题: 使用vmware虚拟机,打开windows的虚拟机,发现找不到摄像头,打开自带的相机软件报错: 解决方法如下,依次点击vmware状态栏的 虚拟机-可移动设备-chicony integrated camera-连接(断开与主…

MySQL用户权限管理属于SQL语句中的DCL语句

1.用户授权 语法:grant 权限,权限,on 库名,表名 to 用户名 [identified by 密码] MySQL5的版本,如果这个用户事先不存在,这个grant命令去给用户授权的时候,会将用户一起创建出来&#xff0…

已解决 django.db.utils.OperationalError: (1051, “Unknown table

报错信息: django.db.utils.OperationalError: (1051, "Unknown table bjybolg.tool_submission")python manage.py migrate --fake 命令用于告诉 Django 假装已经应用某个迁移,而不实际执行该迁移的操作。这通常在以下情况下非常有用&#x…

Linux shell编程学习笔记87:blkid命令——获取块设备信息

0 引言 在进行系统安全检测时,我们需要收集块设备的信息,这些可以通过blkid命令来获取。 1 blkid命令的安装 blkid命令是基于libblkid库的命令行工具,可以在大多数Linux发行版中使用。 如果你的Linux系统中没有安装blkid命令,…

堆的应用——堆排序和TOP-K问题

1.堆排序 想法⼀&#xff1a; 基于已有数组建堆、取堆顶元素完成排序。也就是利用写好的堆数据结构&#xff08;之前的文章有讲解&#xff09;&#xff0c;去实现排序。 void HeapSort(int* a, int n){HP hp;for(int i 0; i < n; i){HPPush(&hp,a[i]);}int i 0;whi…

HexForge:一款用于扩展安全汇编和十六进制视图的IDA插件

关于HexForge HexForge是一款用于扩展安全汇编和十六进制视图的IDA插件&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以方便地直接从 IDA Pro 界面数据解码、解密或执行安全数据审计任务。 功能介绍 1、从 IDA 的反汇编或十六进制视图复制原始十六进制&#xff1b;…

00 DSA-- 入门、实现动态数组、实现链表、栈和队列、环形数组、哈希表

两种代码模式 核心代码模式 核心代码模式&#xff1a;就是给你一个函数框架&#xff0c;你需要实现函数逻辑&#xff0c;这种模式一般称之为。 目前大部分刷题平台和技术面试/笔试场景都是核心代码模式。 比如力扣第一题两数之和&#xff0c;就是给出 twoSum 函数的框架如下…

Jmeter压力测试简单教程(包括服务器状态监控)

前段时间公司需要对服务器进行压力测试&#xff0c;包括登录前的页面和登录后的页面&#xff0c;主要目的是测试负载均衡的实现效果。不知道是不是因为Jmeter不如loadRunner火爆还是什么&#xff0c;网上关于Jmeter的资料有很多但是大多千篇一律&#xff0c;要么简单弄个页面测…

Android 开发 调节声音 SeekBar自定义样式

效果图 xml布局 mipmap/seekbar图片随意一张图都可以&#xff0c;这里我的图就不贴出来了 <SeekBarandroid:id"id/seekBar"android:layout_marginLeft"8dp"android:layout_width"377dp"android:layout_height"8dp"android:layou…