zoukankan      html  css  js  c++  java
  • Flutter实战视频-移动电商-50.持久化_shared_preferences

    50.持久化_shared_preferences

    当app关掉了。再进去的时候 ,购物车的内容还是存在。

    sqflite提供这个来操作SQLite数据库

    flutter提供三种持久化的工具

    今天要学的就是

    shared_preferences

    还有一种持久化就是:file,用流的形式去读取还是有些慢

    安装shared_preferences

    插件地址:

    https://github.com/flutter/plugins/tree/master/packages/shared_preferences

    提前开好了VPN 日本节点下载还是比较快的

    shared_preferences: ^0.5.1

     3分20秒

    拿购物车坐一些持久化的增删改查

    cart_page.dart

    引入shared_preferences 然后stfull创建一个动态的widget

    新增的方法setStringList,当然还有其他的方法setBool等等

    增加方法就完成了

    show 方法从持久化里面获取值,如果有值就用setState给 变量testList赋值,这样界面就发生变化了。

    删除方法,一种是全部清空,一种是根据key值清空

    写build方法

    在build最上面先调用show的方法,

    下面布局用了ListView然后分别放了container和两个按钮

    运行效果展示:

    点击增加按钮,增加了几条记录

    在终端内输入q就是退出了。

    flutter run 重新运行。原来的数据还在

    最终代码

    cart_page.dart

    import 'package:flutter/material.dart';
    import 'package:shared_preferences/shared_preferences.dart';
    
    class CartPage extends StatefulWidget {
      @override
      _CartPageState createState() => _CartPageState();
    }
    
    class _CartPageState extends State<CartPage> {
      List<String> testList=[];
      @override
      Widget build(BuildContext context) {
        _show();
        return Container(
          child: Column(
            children: <Widget>[
              Container(
                height: 500.0,
                child: ListView.builder(
                  itemCount: testList.length,
                  itemBuilder: (context,index){
                    return ListTile(
                      title: Text(testList[index]),
                    );
                  },
                ),
              ),
              RaisedButton(
                onPressed: (){_add();},
                child: Text('增加'),
              ),
               RaisedButton(
                onPressed: (){_clear();},
                child: Text('清空'),
              )
            ],
          ),
        );
      }
      //增加方法 
      void _add() async{
        SharedPreferences prefs=await SharedPreferences.getInstance();
        String temp = 'wjw是最棒哒!!!!!';
        testList.add(temp);
        prefs.setStringList('testInfo', testList);
        _show();
      }
    
       void _show() async{
         SharedPreferences prefs=await SharedPreferences.getInstance();
         if(prefs.getStringList('testInfo')!=null){
           setState(() {
            testList= prefs.getStringList('testInfo');
           });
         }
       }
       //删除
    
      void _clear() async{
        SharedPreferences prefs=await SharedPreferences.getInstance();
         //prefs.clear();//全部删除
        prefs.remove('testInfo');//根据key值清空
        setState(() {
         testList=[];
        });
       }
    
    }
  • 相关阅读:
    《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---07
    《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---05
    shell-查看手机分辨率
    imageView-scaleType 图片压缩属性
    actionbar-displayOptions 属性分析
    setting.system-全局属性的设定
    ActivityChooserView-如何隐藏选择的应用图标
    mIsFunui-判断Funui方法
    setting-在设置中添加新的选项
    install-软件安装跟push的区别
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10765842.html
Copyright © 2011-2022 走看看