Flutter shared_preferences数据存储

1.增加、修改
修改,只需有重新设置即可

SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString(key, value);//设置字符串数据
prefs.setBool(key, value);//设置Bool值数据
prefs.setDouble(key, value);//设置浮点型数据
prefs.setInt(key, value);//设置整形数据
prefs.setStringList(key, value);//设置列表数据

2.删除

SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.remove(key); //删除指定键
prefs.clear();//清空键值对

3.例子

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
//本地化样例
class SharedPeferencesUtil {
  //数据存储
  static Future<bool> setData<T>(String key,T value)async{
    //获取value的数据类型
    String valueTypeName=value.runtimeType.toString();
    SharedPreferences _sharedPreferences=await SharedPreferences.getInstance();
    bool saveIsTrue=true;//保存是否成功
    switch (valueTypeName){
      case 'String':
        _sharedPreferences.setString(key, value as String);
        break;
      case 'int':
        _sharedPreferences.setInt(key, value as int);
        break;
      case 'double':
        _sharedPreferences.setDouble(key, value as double);
        break;
      case 'bool':
        _sharedPreferences.setBool(key, value as bool);
        break;
        case 'List<String>':
          _sharedPreferences.setStringList(key, value as List);
          break;
      default:
        saveIsTrue=false;
        break;
    }
    return saveIsTrue;
  }
  //获取数据
  static Future<T> getData<T>(String key)async{
    SharedPreferences _sharedPreferences=await SharedPreferences.getInstance();
    T res;
    res=await _sharedPreferences.get(key);
    return res;
  }
  //单个删除
  static Future<T> removeData<T>(String key)async{
    SharedPreferences _sharedPreferences=await SharedPreferences.getInstance();
    _sharedPreferences.remove(key);
  }
  //全部删除
  static Future removeAllData()async{
    SharedPreferences _sharedPreferences=await SharedPreferences.getInstance();
    _sharedPreferences.clear();
  }
}

class SharedPeferencesDemo extends StatefulWidget{
  @override
  _SharedPeferencesDemoState createState()=>_SharedPeferencesDemoState();
}
class _SharedPeferencesDemoState extends State<SharedPeferencesDemo>{
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(
        title: Text('SharedPreferences本地化样例'),
      ),
      body:Column(
        children: [
          TextButton(onPressed: (){
            String keyString='key1';
            String valueString='value1';
            SharedPeferencesUtil.setData(keyString, valueString);
            String keyList='key2';
            List<String> valueList=['v1','v2','v3'];
            SharedPeferencesUtil.setData(keyList, valueList);
          },
            child:Text('设置'),
          ),
          TextButton(onPressed: ()async{
            String keyString='key1';
            String valueString=await SharedPeferencesUtil.getData(keyString);
            print(valueString);
            String keyList='key2';
            List<String> valueList=await SharedPeferencesUtil.getData(keyList);
            print(valueList);
          },
            child:Text('获取'),
          ),
          TextButton(onPressed: ()async{
            String keyString='key1';
            SharedPeferencesUtil.removeData(keyString);
          },
            child:Text('单个删除'),
          ),
          TextButton(onPressed: ()async{
            SharedPeferencesUtil.removeAllData();
          },
            child:Text('全部删除'),
          ),
        ],
      ),
    );
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值