颤振共享首选项返回空值

问题描述

大家 我在共享首选项中保存了列表。 由于List无法保存在共享首选项中,因此以json类型保存。 我参考了stackover上的帖子。 但是,在读取存储在首选项中的值时,返回了 null。 请帮忙。

import 'package:Flutter/cupertino.dart';
import 'package:Flutter/material.dart';
import 'package:real_lotto/lotto_number.dart';

class displayNumber extends StatefulWidget {
  @override
  _displayNumberState createState() => _displayNumberState();
}

class _displayNumberState extends State<displayNumber> {
  String _number = '';

  //initState called when the widget is mounted
  void initState() {
    super.initState();
    if (_number == '') {
      loadLotto().then((String s) => setState((() {
            _number = s;
            print(s);
          })));
    }
  }

  @override
  Widget build(BuildContext context) {
    print(_number);
    return Scaffold();
  }
}

Future<void> _saveLotto(number) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setString('key',json.encode(number));
}

Future<String> loadLotto() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  var number = json.decode(prefs.getString('key'));
  return (number);
}

List<dynamic> myNumber() {
  var number = [];
  number.add((List.generate(45,(index) => ++index)..shuffle()).sublist(0,6));
  number.add((List.generate(45,6));
  for (var i = 0; i < number.length; i++) {
    number[i].sort();
  }
  _saveLotto(number);
  return number;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...