内容简介:在移动开发的过程中我们会不可避免地使用到数据的持久化。当我们需要存储一些简单的数据时,我们会使用到要使用这个插件,首先在工程的注意:在使用这个插件时,我们需要进行异步调用,也就是需要使用async/await。
在移动开发的过程中我们会不可避免地使用到数据的持久化。当我们需要存储一些简单的数据时,我们会使用到 NSUserDefaults
(iOS) 或 SharedPreferences
(Android),本文我们就来介绍这个方便的Flutter插件
shared_preferences
来实现本地存储的需求。
添加依赖
要使用这个插件,首先在工程的 pubspec.yaml
文件中加入对这个插件的依赖:
dependencies: shared_preferences: ^0.5.2
下载插件
flutter packages get
使用示例
_incrementCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int counter = (prefs.getInt('counter') ?? 0) + 1;
print('Pressed $counter times.');
await prefs.setInt('counter', counter);
}
注意:在使用这个插件时,我们需要进行异步调用,也就是需要使用async/await。
工具类
我这里也封装了一个 工具 类 pref_util.dart
,需要的话可以直接拷贝到工程中,可以少写一些枯燥的代码:
import 'package:shared_preferences/shared_preferences.dart';
setPrefString(String key, String value) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString(key, value);
}
setPrefInt(String key, int value) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setInt(key, value);
}
setPrefDouble(String key, double value) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setDouble(key, value);
}
setPrefStringList(String key, List<String> value) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setStringList(key, value);
}
setPrefBool(String key, bool value) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool(key, value);
}
getPrefString(String key, {String defaultValue = ''}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString(key) ?? defaultValue;
}
getPrefInt(String key, {int defaultValue = 0}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getInt(key) ?? defaultValue;
}
getPrefDouble(String key, {double defaultValue = 0}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getDouble(key) ?? defaultValue;
}
getPrefStringList(String key, {List<String> defaultValue = const []}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getStringList(key) ?? defaultValue;
}
getPrefBool(String key, {bool defaultValue = false}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getBool(key) ?? defaultValue;
}
removePref(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.remove(key);
}
prefContains(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.get(key) != null;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Kubernetes 使用 Ceph 存储
- Redis 内存使用优化与存储
- 使用Elasticsearch作为主数据存储
- 如何使用MongoDB存储Docker日志!
- 使用Azure托管磁盘简化云存储管理
- [译] 使用 Jetpack DataStore 进行数据存储
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Visual LISP程序设计
李学志 / 清华大学 / 2006-5 / 29.00元
本书系统地介绍了AutoCAD最新版本(2006)的Visual LISP程序设计技术。全书共分13章。前3章介绍AutoLISP语言的基础知识,第4章介绍Visual LISP的开发环境,第5~7章介绍程序的编辑、调试和设计的方法与技巧,第8章介绍如何定义新的AutoCAD命令及创建图层、线型、文字样式、剖面线、尺寸标注等各种AutoCAD对象,以及如何实现参数化图形设计的方法和技术,第9章介绍......一起来看看 《Visual LISP程序设计》 这本书的介绍吧!