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('全部删除'),
),
],
),
);
}
}