我可以在Flutter中将列表放入SharedPreferences中吗?

时间:2019-04-11 16:13:19

标签: dart flutter sharedpreferences

我可以将ArrayListList对象放入Flutter中的SharedPreferences吗?因为我只是意识到颤振并没有使飞镖飞起来

..我想通过点击星形图标来保存喜欢的书,当我点击它时,这些书将保存在sharedPreferences中。

,我可以看到我最喜欢的书的列表。

3 个答案:

答案 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);
  }
 
}

更多参考:Flutter Shared Preferences Tutorial