【问题标题】:How to save an ArrayList of Objects?如何保存对象的 ArrayList?
【发布时间】:2023-03-14 02:32:01
【问题描述】:

我正在创建一个项目,让用户输入书名,然后将其放入 ArrayList 中,然后将其转换为 RecyclerView。我如何存储此 ArrayList 以便在应用程序被销毁时不会丢失数据。以下是我目前正在做的事情。我尝试过 TinyDB 等替代方案,但没有成功。 (顺便说一下,第二个参数是一个复选框)

var todoList = arrayListOf<Todo>(
        Todo("Write your first TODO statement", false)
    )
   
    val adapter = TodoAdapter(todoList)
    binding.rvTodos.adapter = adapter
    binding.rvTodos.layoutManager = LinearLayoutManager(this)

    binding.btnAddTodo.setOnClickListener {
        val title = binding.etTodo.text.toString()
        val todo = Todo(title, false)
        todoList.add(todo)
        adapter.notifyItemInserted(todoList.size - 1)
    }

【问题讨论】:

  • 简单使用共享偏好、领域、房间数据库来存储数据

标签: android kotlin arraylist


【解决方案1】:

您可以使用 SQLite、Room Database 或 Firebase 等数据库存储数据。
在您的情况下,我发现像 Room 这样的数据库将是存储数组列表数据的最佳选择。

您可以通过link(kotlin) 关注 Android 开发者提供的 codelab 或通过link 关注他们的文本教程,开始阅读有关 Room 数据库的信息。

之后,当您在销毁后返回应用程序时,您可以使用一行选择查询从数据库中获取数据并将其再次加载到您的回收器视图适配器中。

【讨论】:

  • 我希望用户离线访问数据,这就是我不想要数据库的原因。还有其他离线存储数据的方法吗?
  • 房间数据库在正常使用时可以离线工作,它自然不是在线数据库,据我所知你不能让它成为在线数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 2016-03-11
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多