[英]flutter : how to persist a List<num> using shared preferences?
如何使用SharedPreferences
持久保存List<num> = [2.5, 5, 7.5, 10]
SharedPreferences
List<num> = [2.5, 5, 7.5, 10]
類的List<num> = [2.5, 5, 7.5, 10]
?
編輯:如何將存儲的數據作為String
或List<String>
為List?
首先,您需要將整數列表轉換為字符串列表,然后將其保存在共享首選項中。
加載時執行相反的操作。
這是一個完整的示例:
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
根據文檔,無法存儲數字列表。 但是您可以使用以下方法實現它:
setStringList(String key, List<String> value) → Future<bool>
將字符串值列表保存到后台的持久性存儲中。
執行:
Future<bool> setStringList(String key, List<String> value) =>
_setValue('StringList', key, value);
另一種替代方法是將整個列表存儲為字符串。
完整的文檔可以在Flutter軟件包存儲庫中找到 。
希望這個能對您有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.