我正在尝试保存列表列表,但是我不知道该怎么做。
所以我有List _randList = new List();
答案 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");
}
因此,您可以选择的是将嵌套数组存储到单个字符串中,我想,您很好。 :)