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(); }