一尘不染

flutter:如何保持列表 使用共享的首选项?

flutter

如何保持像一个列表List<num> = [2.5, 5, 7.5, 10]使用SharedPreferences吗?

编辑:如何将存储的数据转换为String或转换List<String>为列表?


阅读 356

收藏
2020-08-13

共1个答案

一尘不染

首先,您需要将整数列表转换为字符串列表,然后将其保存在共享首选项中。

加载时执行相反的操作。

这是一个完整的示例:

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
2020-08-13