list - 如何使用共享首选项在 Flutter 中存储和保护 map 列表? ( flutter ,共享首选项)

标签 list flutter dart type-conversion sharedpreferences

我正在尝试在我的 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/

相关文章:

flutter - 使用//忽略 : missing_return in an future fuction where we are using conditioning to return answer? 是个好主意吗

algorithm - 在线大厅系统 - 游戏列表

python - 快速搜索列表中的字典

ios - Xcode 和 Flutter 插件 : Could not find or use auto-linked framework 'Flutter'

flutter - Firestore-查询在哪里映射键

android - Flutter-FileSystemException:创建失败flutter_build,权限被拒绝

dart - 模板重复不适用于嵌套列表(Polymer.dart)

javascript - 如何使用 javascript 读取 sharePoint 列表项值(当前项)

java - 如何在 Java 中将 Map 转换为 List?

flutter - 具有固定页眉的双向滚动