为 Flutter 上的列表保存本地数据
Saving Local Data for a list on Flutter
我有一个播放声音的应用程序。有一个声音列表,我将其显示给列表视图。因此用户可以单击列表块并播放声音。我添加了一个“收藏夹”部分。它工作正常。但是当用户关闭应用程序时,它就会消失。我尝试使用 SharedPrefences,但无法做到。因为我需要保存整个列表,但我不知道如何保存。
当我关闭应用程序时,我的所有 'favourite' 列表都会消失。
我将分享所有代码以便更好地理解:
以下是配图说明:
由于保存的歌曲列表是一个字符串列表,您可以使用 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
我有一个播放声音的应用程序。有一个声音列表,我将其显示给列表视图。因此用户可以单击列表块并播放声音。我添加了一个“收藏夹”部分。它工作正常。但是当用户关闭应用程序时,它就会消失。我尝试使用 SharedPrefences,但无法做到。因为我需要保存整个列表,但我不知道如何保存。
当我关闭应用程序时,我的所有 'favourite' 列表都会消失。
我将分享所有代码以便更好地理解:
以下是配图说明:
由于保存的歌曲列表是一个字符串列表,您可以使用 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