在 Flutter 上保存列表的本地数据

问题描述 投票:0回答:3

我有一个可以播放声音的应用程序。有一个声音列表,我将其显示到列表视图中。因此用户可以单击列表图块并播放声音。我添加了一个“收藏夹”部分。而且效果很好。但当用户关闭应用程序时,它就会消失。我尝试使用 SharedPrefences 但无法做到。因为我需要保存整个列表,但我不知道如何保存。

当我关闭应用程序时,我所有的“最爱”列表都会消失。

我将分享所有代码以便更好地理解:

Main.dart
最爱.dart

以下是图片说明:

flutter dart storage local
3个回答
3
投票

由于保存的歌曲列表是字符串列表,您可以使用 SharedPrefences 中的 setStringList() 方法。当您想保存列表时,请使用:

final prefs = await SharedPreferences.getInstance();
await prefs.setStringList('savedSounds', savedSounds);

然后,当应用程序启动时,您可以使用以下方式加载歌曲:

final prefs = await SharedPreferences.getInstance();
savedSounds = prefs.getStringList('savedSounds') ?? [];

然后您可以使用 for 循环来获取已保存的索引,尽管我建议您尝试仅使用已保存歌曲的一个列表。

for(int i = 0; i < savedSounds.length; i++){
      if(soundList[i] == savedSounds[i]){
        savedIndex.add(i.toString());
      }
    }

0
投票

您可以使用 SQFlite 包在本地存储您的列表项。这是包: https://pub.dev/packages/sqflite


0
投票

如果您不介意使用 Futures 和 Future Builder,则可以使用

shared_preferences
https://pub.dev/packages/shared_preferences 或使用
get_storage
https://pub.dev/packages/获取存储/示例

© www.soinside.com 2019 - 2024. All rights reserved.