如何在Flutter中使用SharedPreferences保存List <List <String >>

时间:2020-06-30 12:14:12

标签: flutter dart sharedpreferences

我正在尝试保存列表列表,但是我不知道该怎么做。 所以我有List _randList = new List();

1 个答案:

答案 0 :(得分:2)

请注意,我们无法使用Shared Preferences来存储List<List<String>>。但是,我们始终可以使用一种解决方法。

因为我们已经可以只将List<String>存储在“共享首选项”中,所以最好以字符串形式存储嵌套列表,如下所示

List<String> _arr = ["['a', 'b', 'c'], ['d', 'e', 'f']"];

通过这种方式,您将只拥有一个List<String>,但是也将拥有您的数组,您可以以任何形式或下面的示例提取这些数组

for(var item in _arr){
  print(item);
}

//or you want to access the data specifically then store in another array the item
var _anotherArr = [];
for(var item in _arr){
  _anotherArr.add(item);
}

print(_anotherArr); // [['a', 'b', 'c'], ['d', 'e', 'f']]

通过这种方式,您将能够在共享首选项中存储数据

SharedPreferences prefs;
List<String> _arr = ["['a', 'b', 'c'], ['d', 'e', 'f']"];


Future<bool> _saveList() async {
  return await prefs.setStringList("key", _arr);
}

List<String> _getList() {
  return prefs.getStringList("key");
}

因此,您可以选择的是将嵌套数组存储到单个字符串中,我想,您很好。 :)