SharedPreferences轻量级存储类,以键值对的形式保存设置,属性和数据。在Flutter平台我们使⽤ shared_preferences库来同时⽀持Android 和iOS。
官方网站:https://pub.dev/packages/shared_preferences
在 pubspec.yaml 中添加依赖
shared_preferences: ^2.2.0
案例完成一个计算器,要求初始化可以读取上次关闭软件前的数据
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class BasicPage extends StatefulWidget {
const BasicPage({Key? key}) : super(key: key);
@override
State<BasicPage> createState() => _BasicPageState();
}
class _BasicPageState extends State<BasicPage> {
**late SharedPreferences prefs;**
int _counter = 0;
@override
void initState() {
super.initState();
_loadCounter();
}
**// 懒加载数据 核心代码
void _loadCounter() async {
prefs = await SharedPreferences.getInstance();
setState(() {
_counter = prefs.getInt("counter") ?? 0;
});
}**
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Center(
child: Column(
children: [
SizedBox(height: 100),
ElevatedButton(
onPressed: _add,
child: Text("Add"),
),
Text("$_counter", style: TextStyle(fontSize: 40),),
],
),
),
),
);
}
**// 保存到手机本地里面去
void _add() async {
setState(() {
_counter += 1;
});
await prefs.setInt("counter", _counter);
}**
}