我在第一个屏幕中存储了一个字符串,然后通过以下代码从第二个屏幕中检索了存储的值
第1页:
import 'package:flutter/material.dart';import 'package:shared_preferences/shared_preferences.dart';import 'package:trial/class2.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyHomePage(), ); }}class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> { String _email = ''; @override void initState() { super.initState(); _loadCounter(); } _loadCounter() async { SharedPreferences prefs = await SharedPreferences.getInstance(); setState(() { _email = (prefs.getString('email') ?? ''); }); } _incrementCounter() async { SharedPreferences prefs = await SharedPreferences.getInstance(); setState(() { _email = "a@gmail.com"; }); prefs.setString('email', _email); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("title"), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( '$_email', ), new RaisedButton( child: new Text("next2"), onPressed: () { Navigator.push(context, new MaterialPageRoute(builder: (context) => new Next())); }, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, child: Icon(Icons.add), ), ); }}第2页:
import 'package:flutter/material.dart';import 'package:shared_preferences/shared_preferences.dart';String _email='';class Next extends StatefulWidget { @override _NextState createState() => _NextState();}class _NextState extends State<Next> { @override void initState() { super.initState(); _loadCounter(); } _loadCounter() async { SharedPreferences prefs = await SharedPreferences.getInstance(); setState(() { _email = (prefs.getString('email')??''); }); } @override Widget build(BuildContext context) { return Container( child: new Text("read value from sharepreference is:"+_email), ); }}


