1.添加插件引用 :
shared_preferences: ^2.0.3 # 本地存储插件
2.使用 :
import 'package:shared_preferences/shared_preferences.dart';
//存值的方法和类型
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString(key, value)
prefs.setBool(key, value)
prefs.setDouble(key, value)
prefs.setInt(key, value)
prefs.setStringList(key, value)
//取值的方法和类型
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.getBool(key);
prefs.getDouble(key);
prefs.getInt(key);
prefs.getString(key);
prefs.getStringList(key);
//移除和清空
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.remove(key); //删除指定键
prefs.clear();//清空键值对
3.通过这些可以写一个自己需要的工具类:
import 'package:shared_preferences/shared_preferences.dart';
///数据库相关的工具
class LoginPrefs {
static const String USER_ID = "USER_ID";//用户ID
///保存用户
static void saveUseId(String _useid) async {
SharedPreferences sp = await SharedPreferences.getInstance();
sp.setString(USER_ID,_useid);
}
static Future getUseId() async {
SharedPreferences sp = await SharedPreferences.getInstance();
return sp.getString(USER_ID);
}
}
下面如何使用工具类取值呢?
需要在使用的地方写一个异步的方法获取,如果直接获取会报错。
mUserId = LoginPrefs.getUseId();//直接获取
报错:Flutter : 'Future <dynamic>' is not a subtype of type String
//异步方法获取
initPrefs() async {
mUserId = await LoginPrefs.getUseId();
}
|