Flutter SharedPreferences存储数据基本使用

数据持久化存储

在flutter中使用SharedPreferences 需要异步操作。

添加插件

yaml 复制代码
dependencies:
  shared_preferences: ^2.5.3

代码

dart 复制代码
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  runApp(MyPage());
}

class MyPage extends StatelessWidget {
  const MyPage({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(theme: ThemeData(), home: MyFul());
  }
}

class MyState extends State {
  late String str;

  Future<SharedPreferences> shared = SharedPreferences.getInstance();

  //获取Flag
  void getValue() async {
    SharedPreferences sharedPreferences = await shared;
    bool has = sharedPreferences.containsKey("data");
    if (has) {
      str = sharedPreferences.getString("data")!;
      print(str);
    }else{
      print("没有数据");
    }
  }

  //存储flag
  void setValue(String str) async {
    SharedPreferences sharedPreferences = await shared;
    sharedPreferences.setString("data", str);
    print("存储数据");
  }

  //删除数据
  void delValue(String key) async {
    SharedPreferences sharedPreferences = await shared;
    sharedPreferences.remove(key);
    print("删除数据");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(""), centerTitle: true),
      body: Column(
        children: [
          OutlinedButton(
            onPressed: () {
              setValue("hello");
            },
            child: Text("存储数据500"),
          ),
          OutlinedButton(
            onPressed: () {
              getValue();
            },
            child: Text("获取数据"),
          ),
          OutlinedButton(
            onPressed: () {
              delValue("data");
            },
            child: Text("删除数据"),
          ),
        ],
      ),
    );
  }
}

class MyFul extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return MyState();
  }
}


I/flutter (31129): 存储数据
I/flutter (31129): hello
I/flutter (31129): 删除数据
I/flutter (31129): 没有数据
相关推荐
阿pin4 小时前
Android随笔-kotlin withContext
android·kotlin·withcontext
树码小子4 小时前
开启 IDEA 中的断言功能
android·java·intellij-idea
Android-Flutter6 小时前
android 动画详解
android·kotlin
SoaringHeart6 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter
程序员老刘6 小时前
Flutter 3.47 更新要点:Material 正式分家,老项目先别急着更新
flutter·ai编程·客户端
小孔龙11 小时前
GraphicBuffer 跨进程共享
android
行业研究员11 小时前
Android内置GPS与腾讯地图定位技术对比分析
android·android定位·腾讯地图定位
Android-Flutter12 小时前
android WMS 详解(二)
android·kotlin
stringwu12 小时前
Flutter Generative UI 深度架构剖析与官方 SDK 实战
flutter
游戏开发爱好者813 小时前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone