flutter中使用shared_preferences的存储

Posted loaderman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter中使用shared_preferences的存储相关的知识,希望对你有一定的参考价值。

添加依赖

  shared_preferences: ^0.5.1+2

工具类

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 Web 中使用 Flutter 移动包

Flutter中使用flutter_html解析html文件

在flutter中使用Chopper网络库和flutter_bloc库

如何使用 flutter_webview 插件在 Flutter 中启用位置?

Flutter : 在 Flutter web 中使用 Froala-editor

如何在flutter中使用flutter_webview_plugin和AndroidX