Flutter本地存储比较常用的插件shared_preferences,它其实就是对IOS的NSUserDefaults和安卓的SharedPreferences的分别实现,这里是简单用法示例:
1、在pubspec.yaml中安装
1 | shared_preferences: ^0.5.12+2 |
2、读取方法如:
1 | void initFromCache() async{ |
2 | final SharedPreferences prefs = await _prefs; |
3 | final value_nickname = prefs.getString( 'key_nickname' ); |
4 | final value_dart = prefs.getBool( 'key_dart' ); |
3、写入方法如:
1 | void saveInfo(String value_nickname) async{ |
2 | final SharedPreferences prefs = await _prefs; |
3 | prefs.setString( 'key_nickname' , value_nickname); |
4 | prefs.setBool( 'key_dart' , this .value_dart); |
4、完整代码如下:
001 | import 'package:flutter/material.dart' ; |
002 | import 'package:shared_preferences/shared_preferences.dart' ; |
008 | class MyApp extends StatelessWidget { |
009 | const MyApp({Key key}) : super (key: key); |
012 | Widget build(BuildContext context) { |
015 | title: 'shared_preferences本地存储' , |
016 | debugShowCheckedModeBanner: false , |
023 | class FirstPage extends StatefulWidget{ |
024 | FirstPage({Key key}) : super (key:key); |
026 | _FirstPageState createState() => _FirstPageState(); |
029 | class _FirstPageState extends State<FirstPage>{ |
031 | Future<SharedPreferences> _prefs = SharedPreferences.getInstance(); |
033 | var controller = TextEditingController(); |
034 | bool value_dart = false ; |
035 | bool value_js = false ; |
036 | bool value_java = false ; |
046 | void initFromCache() async{ |
047 | final SharedPreferences prefs = await _prefs; |
048 | final value_nickname = prefs.getString( 'key_nickname' ); |
049 | final value_dart = prefs.getBool( 'key_dart' ); |
050 | final value_js = prefs.getBool( 'key_js' ); |
051 | final value_java = prefs.getBool( 'key_java' ); |
053 | controller.text = (value_nickname== null ? '' : value_nickname); |
054 | this .value_dart = (value_dart== null ? false : value_dart); |
055 | this .value_js = (value_js== null ? false : value_js); |
056 | this .value_java = (value_java== null ? false : value_java); |
061 | void saveInfo(String value_nickname) async{ |
062 | final SharedPreferences prefs = await _prefs; |
063 | prefs.setString( 'key_nickname' , value_nickname); |
064 | prefs.setBool( 'key_dart' , this .value_dart); |
065 | prefs.setBool( 'key_js' , this .value_js); |
066 | prefs.setBool( 'key_java' , this .value_java); |
070 | Widget build(BuildContext context) { |
073 | title: Text( 'SharedPreferences示例' ), |
076 | padding: EdgeInsets.all(10.0), |
078 | crossAxisAlignment: CrossAxisAlignment.center, |
081 | controller: controller, |
082 | decoration: InputDecoration( |
089 | mainAxisAlignment: MainAxisAlignment.center, |
094 | onChanged: (isChanged){ |
096 | this .value_dart = isChanged; |
102 | mainAxisAlignment: MainAxisAlignment.center, |
107 | onChanged: (isChanged){ |
109 | this .value_js = isChanged; |
115 | mainAxisAlignment: MainAxisAlignment.center, |
120 | onChanged: (isChanged){ |
122 | this .value_java = isChanged; |
130 | this .saveInfo(controller.text); |