我正在尝试在我的 Flutter 应用程序中保护并加载对话。 为此,我将每条消息推送到 map 列表:
List<Map> messages = [];
[...]
messages.insert(0, {"data": 1, "message": "Hello, how are you?"}); //Message from user 1
messages.insert(0, {"data": 2, "message": "I am fine."}); //Message from user 2
现在,如何在本地设备上保护此数据(消息列表)并在启动应用程序时加载它?
我已经尝试过共享首选项,但它只允许我存储 String 类型的列表,而不是 Map。
我可以将 Map 类型的列表转换为 String 类型的列表,然后使用它吗?
最佳答案
编辑! SharedPreferences 仅存储以下类型的数据:
- 字符串
- bool
- 双
在这种典型情况下,您将使用 SharedPreferences 来存储 String 类型。 要实现此目的,您需要从数据生成 String 类型。因此您将转换 List => String。 为此,这里有一段非常短的代码,您将添加它来生成 String 。
List<Map> myData = [map2,map1];
jsonEncode(myData);
这个想法是将您的列表转换为 Json 数据,以便您可以将其存储为字符串并在需要时对其进行解码。
关于list - 如何使用共享首选项在 Flutter 中存储和保护 map 列表? ( flutter ,共享首选项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67729116/