zoukankan      html  css  js  c++  java
  • 关于Flutter 利用 sharedPreferences 存取 Map

    选择 sharedPreferences 是因为轻量简单, 记录一下存取 map

    //利用SharedPreferences存储数据
      Future saveString(key,msg) async {
        SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
        sharedPreferences.setString(key,
            msg);
      }

    有个问题就是 msg 只能是字符串类型,但是字符串转map那可是太费劲了。。。   所以利用 json 存储。原本代码里是没有json相关方法接口的,需要在最开始 import 一下

    import 'dart:convert' as JSON;

    开始存储!

    //保存信息到集合
      saveAction() {
          var msg = {
            'message': ‘111’,
            'time': ‘222’,
            'date': ‘aaa’,
            'dayNum': ‘bbb’
          };
          String saveTemp = JSON.jsonEncode(msg);  //转成json字符串
          saveString(msg['message'],saveTemp);  //在这里我把 msg的message值当做key值了
    }

    这里是获取所有数据,也就是说之前可能存储了很多个map

    //获取所有数据
      Future getAllData() async {
        var tempList = new List();
        SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
        Set<String> keys = sharedPreferences.getKeys();
        if(keys!=''&&keys!=null){
          for (var item in keys) {
            var content = sharedPreferences.get(item);
            Map msgMap =  JSON.jsonDecode(content);   //把json转成map
            tempList.add(msgMap);    //把取出来的map都放到数组里了
          }
        }
      }

    取一条数据

    //获取存在SharedPreferences中的某一项数据
      Future getString(key) async {
        var tempMap = new Map();
        SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
        setState(() {
          tempMap =
              JSON.jsonDecode(sharedPreferences.get(key));   //取出来并转换成map
        });
      }

    总结:利用json存取就可以了

  • 相关阅读:
    android.graphics(2)
    Android 性能优化:字体 (为自定义字体提供字体内存缓存)
    管道相关函数(1)-pipe
    【译】用boosting构建简单的目标分类器
    Ubuntu下matlab快捷键设置
    mysql导入sql文件,乱码,一个例子
    PHOG特征
    图像卷积、相关以及在MATLAB中的操作
    matlab实现hog特征
    操蛋的CTex
  • 原文地址:https://www.cnblogs.com/yinniora/p/14333508.html
Copyright © 2011-2022 走看看