1、在pubspec.yaml导入shared_preferences
shared_preferences: ^0.5.1
2、参考代码
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class CartPage extends StatefulWidget {
@override
_CartPageState createState() => _CartPageState();
}
class _CartPageState extends State<CartPage> {
List<String> testList = [];
@override
Widget build(BuildContext context) {
_show();//进入界面时显示数据
return Container(
child: Column(
children: <Widget>[
Container(
width: 500.0,
child: ListView.builder(
itemCount: testList.length,
itemBuilder: (context,index){
return ListTile(
title: Text(testList[index]),
);
}
),
),
RaisedButton(
onPressed: (){
_add();
},
child: Text('增加'),
),
RaisedButton(
onPressed: (){
_clear();
},
child: Text('删除'),
),
],
),
);
}
//增加方法 初始化shared_preferences时需要异步
void _add()async{
//初始化
SharedPreferences prefs = await SharedPreferences.getInstance();
String temp='努力学习';
testList.add(temp);
prefs.setStringList('testInfo', testList);//添加到持久化
_show();
}
//查询
void _show()async{
//初始化
SharedPreferences prefs = await SharedPreferences.getInstance();
//判断是否有值
if(prefs.getStringList('testInfo')!=null){
setState(() {
//赋值
testList=prefs.getStringList('testInfo');
});
}
}
//删除
void _clear()async{
//初始化
SharedPreferences prefs = await SharedPreferences.getInstance();
//两种删除方法
//prefs.clear();//全部数据都删除掉
prefs.remove('testInfo');//根据key删除
setState(() {
testList=[];
});
}
}