簡體   English   中英

顫抖:如何保持列表 <num> 使用共享的首選項?

[英]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]

編輯:如何將存儲的數據作為StringList<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM