【问题标题】:How to store data as array in getStringList(Shared Preference) in Flutter如何将数据作为数组存储在 Flutter 的 getStringList(Shared Preference) 中
【发布时间】:2021-03-20 13:45:33
【问题描述】:

当用户在屏幕上单击时,我正在尝试存储 documentId 数组。我尝试使用 SharedPreference 写入和加载数据,但它存储为字符串,而不是数组。

我的代码:

_writedata() async{
      final prefs = await SharedPreferences.getInstance();
      final key = 'my_key';
      prefs.setStringList(key, [docId]);
    }

_loadData() async{
      final prefs = await SharedPreferences.getInstance();
      final key = 'my_key';
      final value = prefs.getStringList(key) ?? [];
      print('load data: $value');
    }

我的输出:

I/flutter (17292): load data: [9koh2fe2T4FydH2xoqzo]
I/flutter (17292): load data: [aV58m2nZsHtCtGafidh2]
I/flutter (17292): load data: [60Q9uduXR5sqMww1i58D]
I/flutter (17292): load data: [EmrgSlHOGDUHqzDFo4vm]
I/flutter (17292): load data: [D5mJi5Tt6p8GKP9OyE8r]

有人可以指导我如何通过避免重复值以数组格式存储它吗?

感谢您的宝贵时间。

【问题讨论】:

    标签: flutter flutter-dependencies flutter-sharedpreference


    【解决方案1】:

    我认为您对 setStringList 所做的事情有误。它所做的只是保存你给它的列表。它不会添加到现有列表中,也不会检查列表的内容。

    如果你想要一个特定的逻辑,比如添加到列表或删除重复项,你需要get列表,按照你认为合适的方式操作列表,然后set这个列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 2021-03-29
      • 2023-03-03
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      相关资源
      最近更新 更多