2

说明

记录flutter的本地存储插件shared_preferences的简单实用方法
这是一个类似于web的localstorage的插件,
在app上运行时,关闭app时,并不会自动清除掉值,第二次打开时值还在,区别于provide(flutter的状态管理插件)

引入插件

图片描述

这里实用的是0.5.0的版本,有更新的可以实用更新的版本

使用方法

1、引入shared_preferences插件
2、存储方法
3、取出方法
4、销毁方法

直接上代码

import 'package:flutter/material.dart';
//1、引入shared_preferences插件
import 'package:shared_preferences/shared_preferences.dart';

void main(){
    runApp( MyApp());
}
class MyApp extends StatelessWidget{
    @override
    Widget build(BuildContext context){
        return MaterialApp(
            home: Scaffold(
                appBar: AppBar(
                    title: Text("flutter provide"),
                ),
                body: Container(
                    child: Column(
                        children: <Widget>[
                            SaveData()
                        ],
                    ),
                ),
            ),
        );
    }
}
class SaveData extends StatefulWidget{
    _SaveDataState createState() => _SaveDataState();
}
class _SaveDataState extends State<SaveData>{
    int  _aaa ;

    _setData() async{
    //2、存储的方法
        SharedPreferences prefs = await SharedPreferences.getInstance();
        prefs.setInt("save_test", 10);
    }

    _getData() async{
    //3、取出的方法
        SharedPreferences prefs =await SharedPreferences.getInstance();
        setState(() {
            _aaa = prefs.getInt("save_test");
        });
    }

    _removeData() async{
    //4、销毁的方法
        SharedPreferences prefs =await SharedPreferences.getInstance();
        setState(() {
            prefs.remove("save_test");
        });
    }

    @override
    Widget build(BuildContext context){
        return Container(
            child: Column(
                children: <Widget>[
                    Text("$_aaa"),
                    RaisedButton(
                        onPressed: _setData,
                        child: Text("设置值为10"),
                    ),
                    RaisedButton(
                        onPressed: _getData,
                        child: Text("获取值"),
                    ),
                    RaisedButton(
                        onPressed: _removeData,
                        child: Text("清楚值"),
                    )
                ],
            ),
        );
    }
}

添加依赖插件,复制上面代码到项目,直接运行
图片描述


的的的1995
271 声望15 粉丝

前端工程师