flutter中使用shared_preferences的存储
添加依赖
shared_preferences: ^0.5.+
工具类
import 'dart:async'; import 'package:shared_preferences/shared_preferences.dart'; /// 用来做shared_preferences的存储
class SpUtil {
static SpUtil _instance;
static Future<SpUtil> get instance async {
return await getInstance();
} static SharedPreferences _spf; SpUtil._(); Future _init() async {
_spf = await SharedPreferences.getInstance();
} static Future<SpUtil> getInstance() async {
if (_instance == null) {
_instance = new SpUtil._();
await _instance._init(); }
return _instance;
} static bool _beforeCheck() {
if (_spf == null) {
return true;
}
return false;
}
// 判断是否存在数据
bool hasKey(String key) {
Set keys = getKeys();
return keys.contains(key);
} Set<String> getKeys() {
if (_beforeCheck()) return null;
return _spf.getKeys();
} get(String key) {
if (_beforeCheck()) return null;
return _spf.get(key);
} getString(String key) {
if (_beforeCheck()) return null;
return _spf.getString(key);
} Future<bool> putString(String key, String value) {
if (_beforeCheck()) return null;
return _spf.setString(key, value);
} bool getBool(String key) {
if (_beforeCheck()) return null;
return _spf.getBool(key);
} Future<bool> putBool(String key, bool value) {
if (_beforeCheck()) return null;
return _spf.setBool(key, value);
} int getInt(String key) {
if (_beforeCheck()) return null;
return _spf.getInt(key);
} Future<bool> putInt(String key, int value) {
if (_beforeCheck()) return null;
return _spf.setInt(key, value);
} double getDouble(String key) {
if (_beforeCheck()) return null;
return _spf.getDouble(key);
} Future<bool> putDouble(String key, double value) {
if (_beforeCheck()) return null;
return _spf.setDouble(key, value);
} List<String> getStringList(String key) {
return _spf.getStringList(key);
} Future<bool> putStringList(String key, List<String> value) {
if (_beforeCheck()) return null;
return _spf.setStringList(key, value);
} dynamic getDynamic(String key) {
if (_beforeCheck()) return null;
return _spf.get(key);
} Future<bool> remove(String key) {
if (_beforeCheck()) return null;
return _spf.remove(key);
} Future<bool> clear() {
if (_beforeCheck()) return null;
return _spf.clear();
}
}
使用:
SpUtil sp = await SpUtil.getInstance();
int value =sp.getInt(”key“);
flutter中使用shared_preferences的存储的更多相关文章
- 在Flutter中嵌入Native组件的正确姿势是...
引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择.本文希望向大家介绍AndroidView的使用方式 ...
- 理解 Flutter 中的 Key
概览 在 Flutter 中,大概大家都知道如何更新界面视图: 通过修改 Stata 去触发 Widget 重建,触发和更新的操作是 Flutter 框架做的. 但是有时即使修改了 State,Flu ...
- 在 Flutter 中使用 TensorFlow Lite 插件实现文字分类
如果您希望能有一种简单.高效且灵活的方式把 TensorFlow 模型集成到 Flutter 应用里,那请您一定不要错过我们今天介绍的这个全新插件 tflite_flutter.这个插件的开发者是 G ...
- Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
- C#实现MySQL数据库中的blob数据存储
在MySQL数据库中,有一种blob数据类型,用来存储文件.C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll. Mysql.Data.dll(6.9.6)组件下载 ...
- ASP.net 中关于Session的存储信息及其它方式存储信息的讨论与总结
通过学习和实践笔者总结一下Session 的存储方式.虽然里面的理论众所周知,但是我还是想记录并整理一下.作为备忘录吧.除了ASP.net通过Web.config配置的方式,还有通过其它方式来存储的方 ...
- .NET Core程序中使用User Secrets存储敏感数据
前言 在开发中经常会用到一些敏感数据,比如AppSecret或数据库连接字符串,无论是硬编码还是写在配置文件中,最终都要push到svn或git上.对于开源项目,这些敏感数据就无隐私可言了,对于私有项 ...
- C语言_了解一下C语言中的四种存储类别
C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. C语言中的四种存储类别:auto ...
- 从零学习Fluter(五):Flutter中手势滑动拖动已经网络请求
从六号开始搞Flutter,到今天写这篇blog已经过了4天时间,文档初步浏览了一遍,写下了这个demo.demo源码分享在github上,现在对flutter有种说不出的喜欢了.大家一起搞吧! 废话 ...
随机推荐
- Codeforces D. Color the Fence(贪心)
题目描述: D. Color the Fence time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 零基础Python教程-函数及模块的使用
函数 在学习本节内容之前,我们先来一起做道数学题. 已知:半径分别为0.1.0.2.0.3的三个圆,分别求这三个圆的面积. 很多读者可能要笑一下,这不是小学的数学问题吗? S = π * r * r ...
- 【测试工具】moco入门(一)
转自:https://www.cnblogs.com/tangqiu/p/9493147.html 简单来说,Moco就是解决了开发前端时没有后端支持,开发接口时依赖没有到位的尴尬场景.当然Moco的 ...
- HDFS中DataNode的心跳机制
DataNode心跳机制的作用讲解了DataNode的三个作用: register:当DataNode启动的时候,DataNode需要将自身的一些信息(hostname, version等)告诉Nam ...
- Java - 框架之 Spring
一. IOC 和 DI IOC : 控制反转,将对象的创建权反转给了 Spring.DI : 依赖注入,前提是必须要有 IOC 的环境,Spring 管理这个类的时候将类的依赖的属性注入(设置)进来 ...
- SQL Server Default Trace查看是谁对数据库进行了DDL操作
在我们的工作中可能会遇到这样一种情形.由于数据库中某些对象被altered/created/deleted,造成我们的应用程序crash. 当我们把问题解决之后,老板可能会问发生了什么?为什么会这样? ...
- learning java ATW ScrollPane
import java.awt.*; public class ScrollPaneTest { public static void main(String[] args) { var f = ne ...
- Vim颜色配置
最近迷上了Vim 主要原因是可以装逼 不过话说它自带的配色里面也就只有一个evening能勉强满足我的审美 于是我花了大概几天的时间翻了些百度贴吧,或者自己手动改属性后面的配色来实验这个属性到底对应哪 ...
- Random Target Moving~
测试了一下用向量处理随机目标,还是挺有趣的,源码如下: PVector p1, p2; float gap = 10; void setup() { size(1920, 1080); backgro ...
- Reed-Solomon纠错码的译码
其中用到了等比数列展开:1/(1-\alpha). 此时,似乎应该将\alpha视为模远小于1的复数. 只有这样,\alpha^i 才能作为一个有限域中的元素展开.它在一个半径小于1的圆上,由若干具 ...