如何使用List<num> = [2.5, 5, 7.5, 10]
来保存SharedPreferences
之类的列表?
编辑:如何将存储的数据以String
或List<String>
的形式转换为列表?
答案 0 :(得分:4)
首先,您需要将整数列表转换为字符串列表, 然后将其保存在共享的首选项中。
加载时执行相反的操作。
这是一个完整的示例:
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(new MaterialApp(
home: new Scaffold(
body: new Center(
child: new RaisedButton(
onPressed: _save,
child: new Text('Save my list of int'),
),
),
),
));
}
_save() async {
List<int> myListOfIntegers = [1,2,3,4];
List<String> myListOfStrings= myListOfIntegers.map((i)=>i.toString()).toList();
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> myList = (prefs.getStringList('mylist') ?? List<String>()) ;
List<int> myOriginaList = myList.map((i)=> int.parse(i)).toList();
print('Your list $myOriginaList');
await prefs.setStringList('mylist', myListOfStrings);
}
不要忘记将其添加到您的pup spec.yaml文件中:
shared_preferences: ^0.4.3
答案 1 :(得分:0)
根据文档,无法存储数字列表。但是您可以使用以下方式实现它:
setStringList(String key, List<String> value) → Future<bool>
将字符串值列表保存到后台的持久存储中。
实施:
Future<bool> setStringList(String key, List<String> value) =>
_setValue('StringList', key, value);
另一种替代方法是将整个列表存储为字符串。
完整文档可在Flutter packages repository中找到。
希望这对您有帮助