练习:构建 Bus Schedule 应用

练习:构建 Bus Schedule 应用

Sobre aquest laboratori de programació

subjectDarrera actualització: de maig 8, 2024
account_circleEscrit per Google Developers Training team

1. 准备工作

简介

使用 Room 持久保留数据 Codelab 中,您学习了如何在 Android 应用中实现 Room 数据库。本练习旨在让您有机会通过一组独立的步骤,进一步熟悉 Room 数据库的实现。

在本练习集中,您将运用在使用 Room 持久保留数据 Codelab 中学到的概念,完成 Bus Schedule 应用。此应用使用 Room 数据库提供的数据,向用户显示公交车站列表和计划发车时间。

解决方案代码就在文末。为了充分利用这个学习机会,请尝试尽量自行进行实现和问题排查,之后再查看所提供的解决方案代码。只有亲自动手实践,才能获得最好的学习效果。

前提条件

所需条件

  • 一台连接到互联网并安装了 Android Studio 的计算机
  • Bus Schedule 起始代码

构建内容

在本练习集中,您将实现一个数据库,然后使用该数据库将数据传送到界面,从而完成 Bus Schedule 应用。资源目录(位于起始代码中)中的一个数据库文件会为应用提供数据。请将这些数据加载到数据库中,并确保应用可读取这些数据。

在您完成该应用后,应用会显示公交站列表和相应的到达时间。您可以点击列表中的某一项,以转到提供该车站数据的详情屏幕。

完成后的应用会显示从 Room 数据库加载的这些数据:

cdb6f9e79137f323.png

6c59e6f57f59bd27.png

2. 下载起始代码

  1. 在 Android Studio 中,打开 basic-android-kotlin-compose-training-bus-schedule 文件夹。
  2. 在 Android Studio 中打开 Bus Schedule 应用代码。
  3. 点击 Run 按钮 65e9e2045e2dc48b.png 以构建并运行应用。

根据 starter 分行代码构建应用时,应用应显示一个站点的停靠时间表。

3603c91854cada9a.png

3. 添加依赖项

将以下依赖项添加到应用中:

app/build.gradle.kts

implementation("androidx.room:room-ktx:${rootProject.extra["room_version"]}")
implementation("androidx.room:room-runtime:${rootProject.extra["room_version"]}")
ksp("androidx.room:room-compiler:${rootProject.extra["room_version"]}")

您应该从 Room 文档中获取最新的稳定版 room,并添加正确的版本号。目前,最新版本为:

build.gradle.kts

set("room_version", "2.5.1")

4. 创建 Room 实体

将当前的 Bus Schedule 数据类转换为 Room Entity

下图显示了最终数据表的外观示例,包括架构和 Entity 属性。

9587f9a5f035e552.png

5. 创建数据访问对象

创建一个数据访问对象 (DAO) 以访问数据库。DAO 提供了一种用于检索数据库中所有项的方法,以及一种用于检索包含公交站名称的单个项的方法。请务必按到达时间对时间表进行排序。

6. 创建数据库实例

创建一个使用 Entity 和您的 DAO 的 Room 数据库。通过起始代码中 assets/database/bus_schedule.db 文件的数据,数据库会自行初始化。

7. 更新 ViewModel

更新 ViewModel,以便检索 DAO 的数据并将其提供给界面,而不是提供示例数据。请务必利用您的两种 DAO 方法,为列表和单个车站提供数据。