zoukankan      html  css  js  c++  java
  • Flutter之用SharedPreferences实现本地存储

    我们希望在APP中的配置操作,在关闭APP重启后还能生效,我们可以使用本地存储,即SharedPreferences。

    其get和save函数示例如下:

    import 'package:flutter/material.dart';
    import 'package:shared_preferences/shared_preferences.dart';
    
    getSharedPreferences(key,type) async{
      final prefs = await SharedPreferences.getInstance();
      type = type.toString().toLowerCase();
      switch(type){
        case 'bool':
          return prefs.getBool(key) ?? false;
        case 'int':
          return prefs.getInt(key) ?? 0;
        case 'double':
          return prefs.getDouble(key) ?? 0;
        case 'string':
          return prefs.getString(key) ?? '';
      }
    }
    
    saveSharedPreferences(key,val,type) async{
      final prefs = await SharedPreferences.getInstance();
      type = type.toString().toLowerCase();
      switch(type){
        case 'bool':
          prefs.setBool(key, val);
          break;
        case 'int':
          prefs.setInt(key, val);
          break;
        case 'double':
          prefs.setDouble(key, val);
          break;
        case 'string':
          prefs.setString(key, val);
          break;
      }
    }

    调用方式为:

    getSharedPreferences("isChangeQuizOrder","bool").then((isChangeQuizOrder){
      Global.isChangeQuizOrder = isChangeQuizOrder;
    });

    saveSharedPreferences('isChangeQuizOrder', value, "bool");

    其中Global是全局变量,在global.dart中为

    class Global{
      static bool isChangeQuizOrder = true;
      static bool isChangeOptionOrder = true;
    }
  • 相关阅读:
    UML 类与类之间的关系
    HTTP协议基础
    LDAP介绍
    UML 类与类之间的关系
    我的桌面
    RoR的OO与敏捷[1][88250原创]
    Ubuntu7.10纯仿Leopard[00原创]
    37个我爱Ruby的理由
    在Ubuntu 7.10上安装Rails[00整理]
    RoR的OO与敏捷[1][88250原创]
  • 原文地址:https://www.cnblogs.com/luoyihao/p/14731309.html
Copyright © 2011-2022 走看看