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

ops/2024/10/30 3:33:18/

目录

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

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.ppmy.cn/ops/129474.html

相关文章

adguard home去广告

使用adguard来去广告 在OpenWRT路由器上安装并使用Adguardhome以过滤广告|晓旭Blog (xiaoxu.net) https://223.5.5.5/dns-query https://1.12.12.12/dns-query https://120.53.53.53/dns-query https://1.1.1.1/dns-query https://doh.pub/dns-query https://dns.alidns.com/d…

leetcode-146. LRU 缓存

题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,…

oracle数据库---PL/SQL、存储函数、存储过程、触发器、定时器job、备份

PL/SQL 什么是 PL/SQL PL/SQL(Procedure Language/SQL)是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句(如分支、循环等),使 SQL 语言具有过程处理能力。把SQL语言的数据操纵能…

三防加固工业平板国产化的现状与展望

在当今全球科技竞争日益激烈的背景下,工业4.0和智能制造的浪潮推动了工业自动化设备的迅速发展,其中,三防加固工业平板电脑作为连接物理世界与数字世界的桥梁,其重要性不言而喻。所谓“三防”,即防水、防尘、防震&…

LabVIEW提高开发效率技巧----插入式架构

随着LabVIEW项目规模的扩大和系统复杂性的增加,传统的单一代码架构难以应对后期维护和功能扩展的需求。插入式架构(Plug-In Architecture)作为一种模块化设计方式,通过动态加载和运行子VI,使系统功能更加灵活、模块化&…

交叉编译 perl-5.40.0(riscv64)

交叉编译 perl-5.40.0(riscv64) https://arsv.github.io/perl-cross/usage.html https://github.com/arsv/perl-cross 借助 perl-cross 进行交叉编译 https://www.perl.org/get.html#unix_like 这里获取 perl-5.40.0 的源码 https://github.com/arsv/pe…

安装双系统后ubuntu无法联网(没有wifi标识)网卡驱动为RTL8852BE

安装双系统后ubuntu没有办法联网,(本篇博客适用的版本为ubuntu20.04)且针对情况为无线网卡驱动未安装的情况 此时没有网络,可以使用手机数据线连接,使用USB共享网络便可解决无法下载的问题。 打开终端使用命令lshw -C …

三款计算服务器配置→如何选择科学计算服务器?

科学计算在众多领域都扮演着关键角色,无论是基础科学研究还是实际工程应用,强大的计算能力都是不可或缺的。而选择一台合适的科学计算服务器,对于确保科研和工作的顺利进行至关重要。 首先,明确自身需求是重中之重。要仔细考虑计算…