• flutter shared_preferences相当于iOS的UserDefaults 安卓的SharedPreferences


    import 'dart:async';
    
    import 'package:flutter/material.dart';
    import 'package:shared_preferences/shared_preferences.dart';
    
    void main() {
      runApp(new MaterialApp(home: new MyApp()));
    }
    
    
    
    class MyApp extends StatelessWidget {
      final String mUserName = "userName";
      final _userNameController = new TextEditingController();
    
      @override
      Widget build(BuildContext context) {
        save() async{
          SharedPreferences prefs = await SharedPreferences.getInstance();
          prefs.setString(mUserName, _userNameController.value.text.toString());
        }
    
        Future<String> get() async {
          var userName;
    
          SharedPreferences prefs = await SharedPreferences.getInstance();
          userName = prefs.getString(mUserName);
          return userName;
        }
    
        return new Builder(builder: (BuildContext context) {
          return new Scaffold(
            appBar:  AppBar(
              title:  Text("SharedPreferences"),
            ),
            body:  Center(
              child: new Builder(builder: (BuildContext context){
                return
                  Column(
                    children: <Widget>[
                      TextField(
                        controller: _userNameController,
                        decoration:  InputDecoration(
                            contentPadding: const EdgeInsets.only(top: 10.0),
                            icon:  Icon(Icons.perm_identity),
                            labelText: "请输入用户名",
                            helperText: "注册时填写的名字"),
                      ),
                      RaisedButton(
                          color: Colors.blueAccent,
                          child: Text("存储"),
                          onPressed: () {
                            save();
                            Scaffold.of(context).showSnackBar(
                                new SnackBar(content:  Text("数据存储成功")));
                          }),
                      RaisedButton(
                          color: Colors.greenAccent,
                          child: Text("获取"),
                          onPressed: () {
                            Future<String> userName = get();
                            userName.then((String userName) {
                              Scaffold.of(context).showSnackBar(
                                  SnackBar(content: Text("数据获取成功:$userName")));
                            });
                          }),
                    ],
                  );
              }),
            ),
          );
        });
      }
    }

  • 相关阅读:
    虚方法(virtual)和抽象方法(abstract)的区别
    IT社区
    C#中动态加载和卸载DLL
    应用程序体系结构
    Enterprise Architect 7.0入门教程
    jQuery插件开发基础1
    asp.net页面事件执行顺序
    codesmith4.1破解版
    在Web.config配置文件中自定义配置节点
    小巧实用的节拍器软件FineMetronome介绍 原创
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/12089955.html
Copyright © 2020-2023  润新知