Android 使用测验应用程序部署问题
我正在构建一个有数千个问题的测验应用程序。问题在文本文件中,如下所示:Android 使用测验应用程序部署问题,android,kotlin,Android,Kotlin,我正在构建一个有数千个问题的测验应用程序。问题在文本文件中,如下所示: 42. Example question? a) option 1 b) option 2+ c) option 3 d) option 4 e) option 5 43. Example question? a) option 1 b) option 2 c) option 3 d) option 4+ e) option 5 +字符表示正确答案。我的申请有一个问题类: data class Question(
42. Example question?
a) option 1
b) option 2+
c) option 3
d) option 4
e) option 5
43. Example question?
a) option 1
b) option 2
c) option 3
d) option 4+
e) option 5
+
字符表示正确答案。我的申请有一个问题
类:
data class Question(
val text: String?,
val answers: ArrayList<String>?,
val correctAnswer: String?
)
数据类问题(
val文本:字符串?,
val回答:ArrayList?,
答案:字符串?
)
我的目标是在应用程序中附带所有这些问题,并且这些问题不可由用户编辑。实现这一目标的最佳方式是什么
我可以想到两件事:
- 我可以用应用程序验证文本文件,并在运行时用一些正则表达式解析问题。看起来可能,但混乱,可能缓慢。它也不能很好地扩展
- 用这些
对象填充数据库,并随应用程序一起发送数据库。同样,这听起来是可行的,但我不确定这是否真的可行Question
- 还有别的吗?也许是连载之类的?我不确定。
类实现了Question
接口。我是Android开发新手;很可能我遗漏了什么Parcelable
- 大多数主要编程语言都有SQLite客户端库。您可以编写一个桌面工具,使用您喜爱的语言将问题转换为表格行
- 您可以将SQLite数据库与应用程序打包,并将其复制到文件系统以供使用。如果您希望将Room用于SQLite access API,则Room具有对此的内置支持(
上的RoomDatabase.Builder
)createFromAsset()
或者,您可以让一个桌面工具将您的问题转换为JSON或XML,然后将它们打包为资产,并在运行时读取它们。如果我使用Room for SQLite access,我如何在桌面计算机上创建数据库是否重要?@_Static_assert:Room有一些需要放入数据库中的元数据。
createFromAsset()
的文档在这一点上有点模糊。我所做的是让Room为我创建一个空数据库,但使用我的表结构和Room的元数据。我将该数据库从设备上复制下来,并将数据注入其中,然后将填充的数据库用作未来的资产。但是,如果您经常更改模式,这将是一件令人恼火的事情。