Flutter使用本地存储SharedPreference(Android)/NSUserDefaults(iOS)

栏目: IOS · 发布时间: 5年前

内容简介:在移动开发的过程中我们会不可避免地使用到数据的持久化。当我们需要存储一些简单的数据时,我们会使用到要使用这个插件,首先在工程的注意:在使用这个插件时,我们需要进行异步调用,也就是需要使用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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘十大算法

数据挖掘十大算法

(美)吴信东(Xindong Wu)、(美),库玛尔 ,(Vipin Kumar) / 李文波、吴素研 / 清华大学出版社 / 2013-5 / 39.00元

《世界著名计算机教材精选:数据挖掘十大算法》详细介绍了在实际中用途最广、影响最大的十种数据挖掘算法,这十种算法是数据挖掘领域的顶级专家进行投票筛选的,覆盖了分类、聚类、统计学习、关联分析和链接分析等重要的数据挖掘研究和发展主题。《世界著名计算机教材精选:数据挖掘十大算法》对每一种算法都进行了多个角度的深入剖析,包括算法历史、算法过程、算法特性、软件实现、前沿发展等,此外,在每章最后还给出了丰富的习......一起来看看 《数据挖掘十大算法》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具