如何保存对象的数组列表?



我正在创建一个项目,其中我有一个用户输入一个书名,我把它放到一个ArrayList中,该ArrayList稍后被转换为一个RecyclerView。我如何存储这个数组列表,以便在应用程序被销毁时数据不会丢失。下面是我目前的情况。我尝试过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)
}

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

你可以通过这个链接(kotlin)跟随Android开发者提供的codelab开始阅读Room数据库,或者通过这个链接跟随他们的文本教程。

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

最新更新