flutter 数据存储 SharedPreferences

SharedPreferences

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。以键值对的形式保存设置,属性和数据。

在flutter平台也有一个SharedPreferences插件
在iOS上使用NSUserDefaults,在Android平台使用SharedPreferences,为简单数据提供持久存储。数据以异步方式持久保存到磁盘。

要使用此插件,请在pubspec.yaml文件中添加shared_preferences作为依赖项。
博主在写这篇文章时,最新版本为0.4.2。

引入


dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^0.1.2
  shared_preferences: ^0.4.2

使用

import 'package:shared_preferences/shared_preferences.dart';
...


  /*
   * 存储数据
   */
  Future _onClick() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.setString('account', account);
    print('存储acount为:$account');
  }

  /*
   * 读取数据
   */
  Future _readShared() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    String account = preferences.get('account');
     print('读取到acount为:$account');
  }

  /*
   * 删除数据
   */
  Future _removeShared() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.remove('account');
    print('删除acount成功');
  }

因为是异步操作,所以async 和 await 一定不要省略。
如果想要读取的数据没有存储到磁盘中,则返回null。

然后我们写一个实际应用场景:页面有一 个输入框,3个按钮,分别把输入框中的内容存储到本地和从本地读取已经存了的数据以及删除我们存储的数据。在读取到数据时写入输入框。

看一下效果:

xiaoguo

奉上代码:

/*
 * Created by 李卓原 on 2018/9/13.
 * email: zhuoyuan93@gmail.com
 *
 */

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class MyInfoListPage extends StatelessWidget {
  TextEditingController accountController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        children: <Widget>[
          TextField(
            controller: accountController,
            decoration: InputDecoration(
              helperText: '请输入账号',
            ),
          ),
          RaisedButton(
            child: Text('存储'),
            onPressed: _onClick,
          ),
          RaisedButton(
            child: Text('读取'),
            onPressed: _readShared,
          ),
          RaisedButton(
            child: Text('删除'),
            onPressed: _removeShared,
          )
        ],
      ),
    );
  }

  /*
   * 存储数据
   */
  Future _onClick() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    String account = accountController.text;
    preferences.setString('account', account);
    print('存储acount为:$account');
  }

  /*
   * 读取数据
   */
  Future _readShared() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    String account = preferences.get('account');
    print('读取到acount为:$account');
    accountController.text = account;
  }

  /*
   * 删除数据
   */
  Future _removeShared() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.remove('account');
    print('删除acount成功');
  }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值