我有一个可以播放声音的应用程序。有一个声音列表,我将其显示到列表视图中。因此用户可以单击列表图块并播放声音。我添加了一个“收藏夹”部分。而且效果很好。但当用户关闭应用程序时,它就会消失。我尝试使用 SharedPrefences 但无法做到。因为我需要保存整个列表,但我不知道如何保存。
当我关闭应用程序时,我所有的“最爱”列表都会消失。
我将分享所有代码以便更好地理解:
以下是图片说明:
由于保存的歌曲列表是字符串列表,您可以使用 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());
}
}
您可以使用 SQFlite 包在本地存储您的列表项。这是包: https://pub.dev/packages/sqflite
如果您不介意使用 Futures 和 Future Builder,则可以使用
shared_preferences
库 https://pub.dev/packages/shared_preferences 或使用 get_storage
库 https://pub.dev/packages/获取存储/示例