安装shared_preferences第三方库
地址
shared_preferences: ^0.5.6+2
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:shared_preferences/shared_preferences.dart';
Future<SharedPreferences> _incrementCounter() async {
await SharedPreferences.getInstance();
}
class LocalStore{
Future<void> setstr(String key,String value) async{
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString(key, value);
}
Future<String> getstr(String key) async{
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
Future<void> clearstr(String key) async{
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.remove(key);
}
}
void main(){
return runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: NetWorkPage());
}
}
class NetWorkPage extends StatefulWidget {
@override
_NetWorkPageState createState() => _NetWorkPageState();
}
class _NetWorkPageState extends State<NetWorkPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('首页'),
),
body: Container(
child: Center(
child: Column(
mainAxisAlignment:MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
child: Text('存储名字'),
onPressed: () async{
await LocalStore().setstr('name', '张三');
}),
RaisedButton(
child: Text('删除名字'),
onPressed: () async{
await LocalStore().clearstr('name');
}),
RaisedButton(
child: Text('本地存储'),
onPressed: () {
Navigator.push(context,
MaterialPageRoute(builder: (context) => Page2Demo()));
}),
],
)),
),
);
}
}
class Page2Demo extends StatefulWidget {
@override
_Page2DemoState createState() => _Page2DemoState();
}
class _Page2DemoState extends State<Page2Demo> {
String str="";
@override
void initState(){
super.initState();
LocalStore().getstr('name').then((String value){
setState(() {
str=value;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title:new Text('本地存储')),
body: Container(
child:str==null?Text('没有名字'):Text(str)
)
);
}
}