【发布时间】:2021-07-15 05:26:36
【问题描述】:
即使应用程序在 Flutter 中关闭,你怎么能存储这样的东西:
Class myList {
String id;
List<Item> list;
}
Class Item{
//Many property’s
}
我想也许我可以使用“sqflite”(一种颤振依赖项)来做到这一点,但我不知道如何将这个 List
顺便说一句:我需要多个“myList”实例。
【问题讨论】:
即使应用程序在 Flutter 中关闭,你怎么能存储这样的东西:
Class myList {
String id;
List<Item> list;
}
Class Item{
//Many property’s
}
我想也许我可以使用“sqflite”(一种颤振依赖项)来做到这一点,但我不知道如何将这个 List
顺便说一句:我需要多个“myList”实例。
【问题讨论】:
您可以使用 sqflite、hive 或共享首选项来存储它。尝试将其保存在 flutter shared preferences 下。这是您可以使用的两种方法。
使用共享偏好 1)首先创建一个共享偏好实例
SharedPreferences prefs = await SharedPreferences.getInstance();
然后保存相关的数据类型。这里需要放一个对象列表,所以添加列表并使用jsonEncode将其转换为String。
Map<String,List<Item>> map={mylist.id: mylist.list};
prefs.setString("itemList", json.encode(map));
然后你可以像这样检索数据
Map<String,List<Item>> map=json.decode(prefs.getString("itemList")).asMap();
2)使用 Hive 首先创建hive数据库。你可以在这里输入任何名字
var box = Hive.box('myBox');
然后将对象添加到该数据库中
var myList = myList()
..id = your id here
..list = add list here;
var name = box.add(myList);
您可以在任何地方获取此数据列表。
print(box.getAt(0));
【讨论】:
你可以试试hive 包。它是一个轻量级的本地存储通道,使用 hive 是一个好主意,因为它具有更好的读写基准。您可以搜索配置单元的教程。或者只是阅读文档。
【讨论】: