内容简介:在移动开发的过程中我们会不可避免地使用到数据的持久化。当我们需要存储一些简单的数据时,我们会使用到要使用这个插件,首先在工程的注意:在使用这个插件时,我们需要进行异步调用,也就是需要使用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 进行数据存储
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learn Python the Hard Way
Zed Shaw / Example Product Manufacturer / 2011
This is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up t......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!