【发布时间】:2019-09-02 08:30:06
【问题描述】:
我可以将 ArrayList 或 List 对象放在 Flutter 中的 SharedPreferences 吗?因为我刚刚意识到颤振在他们的飞镖中没有 gson
所以..我想通过点击星形图标来保存喜欢的书,当我点击它时,这些书将保存在 sharedPreferences 中。
我可以看到我最喜欢的书的列表。
【问题讨论】:
标签: dart flutter sharedpreferences
我可以将 ArrayList 或 List 对象放在 Flutter 中的 SharedPreferences 吗?因为我刚刚意识到颤振在他们的飞镖中没有 gson
所以..我想通过点击星形图标来保存喜欢的书,当我点击它时,这些书将保存在 sharedPreferences 中。
我可以看到我最喜欢的书的列表。
【问题讨论】:
标签: dart flutter sharedpreferences
保存:
prefs.setStringList('key', yourList);
检索:
var yourList = prefs.getStringList('key');
【讨论】:
ArrayList,我们只有List。只要是String的列表,您应该可以保存它。
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);
}
}
【讨论】:
ArrayList 如果你是指 Flutter 的 List 数据结构,那么你可以使用这种方法只将 List 保存在 SharedPreference 中:
Future <bool> setStringList(String key, List<String> value)
您可以通过以下方式获取列表:
List<String> getStringList(String key)
有关 shared_preferences 的更多信息,请参阅this 文章。
一些免费建议: SharedPreferences 用于保存键值对中与用户设置相关的数据。它不应该保存任何复杂的数据,如自定义对象列表。
如果您需要存储比这更复杂的数据,请考虑使用 SQLite。
【讨论】: