安卓移动-作业6

1 实验目的 (Experiment Purpose)

  1. 熟悉 SharedPreferences的使用方法。
  2. 熟悉数据解析方式。
  3. 理解数据库的ACID原则。
  4. 熟悉SQLite数据库的使用方法。
  5. 熟悉 Content Provider(内容提供器)的使用方法。
  6. 熟悉和了解 ContentResolver(内容解析器)的基本用法。
  7. 初步了解数据库的调试和测试方法。

2 实验环境 (Experiment Environment)

software: java version “18.0.2”,Android Studio 2021.2.1 Patch 2
Operating system:Window 10

3 实验内容 (Experiment content)

3.1 Experimental data

Set the string in Android/app/res/layout/value/strings.xml.
在 Android/app/res/layout/value/strings.xml中制定字符串。

<resources>
    <string name="app_name">Experiment3</string>
    <string name="account">账号:</string>
    <string name="password">密码:</string>
    <string name="submit">提交答案</string>
    <string name="input">请输入答案</string>
    <string name="question">问题</string>
    <string name="option">选项</string>
    <string name="question1">单选题</string>
    <string name="question2">判断题</string>
    <string name="question3">多选题</string>
    <string name="question4">填空题</string>
    <string name="question5">简答题</string>
</resources>

Set the images in Android/app/res/drawable.
在 Android/app/res/drawable中放置图片。

3.2 Experimental process

需求
  1. 改进实验二的登录界面,采用
    SharedPreferences记住第1次登录时输入的用户名和密码,以后登录不再需要输入用户名和密码。
  2. 将题库保存为JSON文件,读取JSON文件并在列表中显示。
  3. 编写程序在Android操作系统中创建数据库。
  4. 向数据库(SQLite)中添加题库数据,并且在数据库中删除数据、更新数据以及查询数据。
  5. 使用 Content Resolver(内容解析器)查询联系人数据。
  6. 通过 Content
    Provider(内容提供器)共享SQLite数据库中的表,并且编写一个新的应用来访问共享的数据表,包括插入、更新、删除和查询共享的数据表,如图A-6所示。
  7. 编译、调试和查看程序运行结果。
步骤

Set the layout of quiz in Android/app/res/layout.
在 Android/app/res/layout文件中设定问题的布局。

3.3 Experimental results

The results display and code implementation are shown as follows:
结果展示和代码实现如下图:
以下是登陆页面和功能选择页面:

以下四个页面分别是:

  • 练题的"题型选择"的页面和"题目"页面
  • 题库的展示页面
  • 数据库的"增删改查"页面

4 实验小结 (Summary)

My thoughts and experiences

如何安全地使用 SharedPreferences存储用户名和密码?

储存密码时使用getSharedPreferences和edit方法。
使用putString进行存储,使用getString进行读取。
使用commit()进行提交。

如何使用SQLiteOpenHelper类?

创建数据库
涉及的方法有onCreate()、getWritableDatabase()、getReadableDatabase()

插入数据
步骤:创建并打开数据库(可读/写)、插入数据
涉及方法:getWritableDatabase()、insert()
insert()也可以使用excelSQL()代替

修改数据(升级数据库)
涉及的方法有onUpgrade()、getWritableDatabase()、update()

删除数据
步骤:创建并打开数据库(可读/写)、删除数据
涉及方法:getWritableDatabase()、delete()(或excelSQL())

查询数据
步骤:创建并打开数据库(可读)、查询数据
涉及方法:getReadableDatabase()、query() 或 rawQuery()

关闭数据库
当我们完成了对数据库的操作后,记得调用SQLiteDatabase的close()方法释放数据库连接,否则容易出现SQLiteException。

删除数据库
deleteDatabase()

如何按照数据库设计原则设计数据表?

The fewer the data tables, the better the number of fields in the data tables, the better the number of fields with joint primary keys in the data tables, the better the use of primary keys and foreign keys, the better
数据表的个数越少越好,数据表中的字段个数越少越好,数据表中联合主键的字段个数越少越好,使用主键和外键越多越好

5 附录 (Appendix)

代码地址gitee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值