list - 如何使用共享首选项在 Flutter 中存储和保护地图列表?(颤振,共享首选项)
问题描述
我正在尝试在我的 Flutter 应用程序中保护和加载对话。为此,我将每条消息推送到地图列表:
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
现在,如何在本地设备上保护这些数据(消息列表)并在启动应用程序时加载它?
我已经尝试过共享首选项,但它只允许我存储字符串类型的列表,而不是地图。
我可以将 Map 类型的 List 转换为 String 类型的 List 然后使用它吗?
解决方案
编辑 ! SharedPreferences仅存储以下类型的数据:
- 细绳
- 布尔
- 双倍的
在这种典型情况下,您将使用 SharedPreferences 来存储 String 类型。要实现这一点,您需要从您的数据中生成一个字符串类型。因此您将转换一个列表 => 字符串。为此,您需要添加一段非常短的代码来生成您的 String 。
List<Map> myData = [map2,map1];
jsonEncode(myData);
这个想法是将您的 List 转换为 Json 数据,以便您可以将其存储为 String 并在需要时对其进行解码。
推荐阅读
- google-calendar-api - Google Calendar API 使用受限问题
- swift - 从 CATransform3D 获取缩放、平移和旋转
- lua - 在嵌套情况下如何最好地找到特定值的键?
- php - Laravel 购票支付方式
- html - 无法在 @font-face 中加载 base64 编码字体
- python - readthedocs autobuild 需要 Fortran 编译器:改为上传本地构建的文件?
- arrays - 如果嵌入文档数组中的每个文档都符合条件,则获取文档
- sql-server - 在使用 order by to order building floor 解决 sql 问题时需要帮助
- bamboo - 无法添加 Bamboo 作业要求
- python - Python脚本放在Crontab上后不起作用