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

Saving Local Data for a list on Flutter

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

当我关闭应用程序时,我的所有 'favourite' 列表都会消失。

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

Main.dart
Favourite.dart

以下是配图说明:

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

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

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

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

然后您可以使用 for-loop 来获取已保存的索引,但我建议您尝试只使用已保存歌曲的一个列表。

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

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