如何最初存储数据并在android(kotlin)中动态编辑它?

Posted

技术标签:

【中文标题】如何最初存储数据并在android(kotlin)中动态编辑它?【英文标题】:How to store data initially and edit it dynamically in android (kotlin)? 【发布时间】:2020-04-14 03:18:00 【问题描述】:

我正在用 Kotlin 创建一个用于练习英语单词含义的 android 应用。为此,我需要在应用中存储数据,其中包括英文单词列表,并且我需要为每个单词存储其含义和其他属性。 例如:

[
    
        "word": "WORD1",
        "meaning": "M1",
        "attr1": "A11",
        "attr2": "A12",
        "attr3": "A13",
    ,
    
        "word": "WORD2",
        "meaning": "M2",
        "attr1": "A21",
        "attr2": "A22",
        "attr3": "A23",
    ,
    
        "word": "WORD3",
        "meaning": "M3",
        "attr1": "A31",
        "attr2": "A32",
        "attr3": "A33",
    ,
]

当应用启动时,它会加载存储的数据并将其存储到集合中。之后,根据用户的输入和选择,应用会改变一些属性。最终,甚至在应用程序运行时,数据需要存储回来

为此,我考虑使用具有此数据的 JSON 格式文件,并动态更改它。那可能吗?如果是这样,这是正确的方法吗?考虑到在应用运行和恢复时需要更改数据(这会导致性能问题吗?)

有没有更好的方法来做到这一点?以及如何?


更新:(在下面凯文的回答之后)

我考虑使用 JSON 文件来存储初始数据,应用程序第一次运行时,它会从 JSON 文件中获取数据并使用 SQL 创建数据库。 JSON 文件还将包含版本。

为此,我将 JSON 文件存储在 assets 中,应用程序将在创建数据库后将其删除。

当 JSON 文件有更新(版本递增)时,应用程序将更新数据库并在此之后删除新的 JSON 文件。

这是个好主意吗?用户可以在资产文件从他的设备中删除之前访问它吗?如果是,有没有办法隐藏它?

【问题讨论】:

【参考方案1】:

通常对于这样的任务,最好使用 SQLite,这是一个自包含的数据库,它提供通常的 SQL 操作并允许您的数据在应用程序启动之间保持不变,而无需管理 JSON 文件的加载、读取和写入。

【讨论】:

但是如果在安装前需要将数据保存在.apk中,如何将初始数据存储在数据库中?我的意思是我需要在安装前提供单词和含义,这些将在安装时出现在应用程序中。 也许这个问题可以指导你***.com/questions/23273452/…

以上是关于如何最初存储数据并在android(kotlin)中动态编辑它?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 kotlin 在 android 中初始化小部件

我需要将当前日期与其他数据一起添加到 firebase Realtime 数据库,并在 kotlin android 中检索所有带有日期的数据

如何在 Android 设备上保存 Firebase 通知?

Android kotlin 系列讲解(数据篇)SharedPreferences存储及测试

使用GlobalScope进行Kotlin SQL调用

Recyclerview 项目在再次获取数据时增加高度 Android Kotlin