我可以将ArrayList
或List
对象放入Flutter中的SharedPreferences
吗?因为我只是意识到颤振并没有使飞镖飞起来
..我想通过点击星形图标来保存喜欢的书,当我点击它时,这些书将保存在sharedPreferences中。
,我可以看到我最喜欢的书的列表。
答案 0 :(得分:2)
您可以将List<String>
保存在SharedPreferences
中。这是您应该如何做。
prefs.setStringList("key", yourList);
SharedPreferences prefs;
List<String> list;
// ...
Future<bool> _saveList() async {
return await prefs.setStringList("key", list);
}
List<String> _getList() {
return prefs.getStringList("key");
}
答案 1 :(得分:0)
如果您是指Flutter的列表数据结构,则使用ArrayList,则只能使用以下方法将列表保存在SharedPreference中:
Future <bool> setStringList(String key, List<String> value)
您可以使用以下方法获取列表:
List<String> getStringList(String key)
有关shared_preferences的更多信息,请访问this文章。
一些免费建议: SharedPreferences用于保存键值对中与用户设置有关的数据。它不应保存任何复杂的数据,例如自定义对象列表。
如果您需要存储比这更复杂的数据,请考虑使用SQLite。
答案 2 :(得分:0)
import 'package:shared_preferences/shared_preferences.dart';
class MySharedPreferences {
MySharedPreferences._privateConstructor();
static final MySharedPreferences instance =
MySharedPreferences._privateConstructor();
setListData(String key, List<String> value) async {
SharedPreferences myPrefs = await SharedPreferences.getInstance();
myPrefs.setStringList(key, value);
}
Future<List<String>> getListData(String key) async {
SharedPreferences myPrefs = await SharedPreferences.getInstance();
return myPrefs.getStringList(key);
}
}