Android开发Flutter使用SharedPreferences示例

在这里插入图片描述

文章目录

  • SharedPreferences
  • 具体使用

SharedPreferences

Android原生开发经常会用SharedPreferences来保存一些设置,Flutter用什么来保存这些设置呢?
在Flutter中,你可以使用shared_preferences插件来实现类似Android原生开发中的SharedPreferences功能,用于在应用程序中保存和检索持久化的键值对。

具体使用

首先,在你的Flutter项目的pubspec.yaml文件中添加shared_preferences插件的依赖:

dependencies:
  shared_preferences: ^2.2.2

然后运行flutter pub get以安装依赖。

以下是一个简单的示例,演示了如何使用shared_preferences来保存和检索数据:

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

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

class MyApp extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('SharedPreferences Example'),
        ),
        body: MySharedPreferencesDemo(),
      ),
    );
  }
}

class MySharedPreferencesDemo extends StatefulWidget {
  
  _MySharedPreferencesDemoState createState() => _MySharedPreferencesDemoState();
}

class _MySharedPreferencesDemoState extends State<MySharedPreferencesDemo> {
  late TextEditingController _controller;
  late SharedPreferences _prefs;
  String _savedValue = '';

  
  void initState() {
    super.initState();
    _controller = TextEditingController();
    _initSharedPreferences();
  }

  Future<void> _initSharedPreferences() async {
    _prefs = await SharedPreferences.getInstance();
    _loadSavedValue();
  }

  void _loadSavedValue() {
    setState(() {
      _savedValue = _prefs.getString('saved_value') ?? '';
    });
  }

  void _saveValue() {
    final String valueToSave = _controller.text;
    _prefs.setString('saved_value', valueToSave);
    _loadSavedValue();
  }

  
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          TextField(
            controller: _controller,
            decoration: InputDecoration(labelText: 'Enter a value'),
          ),
          SizedBox(height: 16.0),
          ElevatedButton(
            onPressed: _saveValue,
            child: Text('Save Value'),
          ),
          SizedBox(height: 16.0),
          Text('Saved Value: $_savedValue'),
        ],
      ),
    );
  }

  
  void dispose() {
    _controller.dispose();
    super.dispose();
  }
}

在这个例子中,我们使用了shared_preferences插件来保存一个简单的字符串值。你可以根据需要保存和检索更多的数据类型。确保根据你的应用程序需求适配数据类型。


结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/304256.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低抖动可编程SPXO SG-8200CG, SG-8201CG -高稳定性和低抖动特性

描述 SG-8200CG和SG-8201CG (sg -8201系列)利用爱普生新的低噪声分n锁相环技术&#xff0c;与上一代爱普生可编程晶体振荡器相比&#xff0c;稳定性提高了约2x&#xff0c;相位抖动降低了<1/25。sg -8201系列可编程为1.2MHz至170MHz的任何频率&#xff0c;工作温度范围可达…

tcp/ip协议2实现的插图,数据结构6 (24 - 章)

(142) 142 二四1 TCP传输控制协议 tcpstat统计量与tcp 函数调用链 (143) 143 二四2 TCP传输控制协议 宏定义与常量值–上 (144) 144 二四3 TCP传输控制协议 宏定义与常量值–下 (145) 145 二四4 TCP传输控制协议 结构tcphdr,tcpiphdr (146) 146 二四5 TCP传输控制协议 结构 tcp…

【MATLAB】ICEEMDAN_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 ICEEMDAN-LSTM神经网络时序预测算法是一种结合了改进的完全扩展经验模态分解&#xff08;ICEEMDAN&#xff09;和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序列预测方法。 …

x-cmd pkg | raku - 渐进类型的、多范式的编程语言

目录 简介首次用户技术特点相关的术语进一步阅读 简介 Raku 是 Perl 家族中的一种编程语言&#xff0c;原名 Perl 6&#xff0c;主要设计者为 Larry Wall&#xff0c;从2000年开始开发&#xff0c;2019年10月更名为 Raku&#xff0c;是一种通用的、渐进类型的、多范式的编程语…

C++常用库函数大小写转换

在我们在编写代码时大小写转换是基础知识&#xff0c;这篇博客将通过介绍C常用库函数来回顾和学习一种不一样的大小写转换 目录 一、islower/isupper函数二、tolower/toupper函数三、ASCLL码 一、islower/isupper函数 islower和isupper函数是C标准库中的字符分类函数&#xff…

什么是检索增强生成 (RAG)

什么是 RAG RAG&#xff0c;即检索增强生成&#xff0c;是一种将预训练的大型语言模型的功能与外部数据源相结合的技术。这种方法将 GPT-3 或 GPT-4 等 LLM 的生成能力与专用数据搜索机制的精确性相结合&#xff0c;从而形成一个可以提供细微响应的系统。 本文更详细地探讨了…

搭建Eureka服务注册中心

前言 我们在别的章节中已经详细讲解过eureka注册中心的作用&#xff0c;本节会简单讲解eureka作用&#xff0c;侧重注册中心的搭建。 Eureka作为服务注册中心可以进行服务注册和服务发现&#xff0c;注册在上面的服务可以到Eureka上进行服务实例的拉取&#xff0c;主要作用就是…

加载符号文件

1、加载符号文件 当程序突发崩溃时&#xff0c;当我们尝试通过core文件分析原因时&#xff0c;通常会遇到以下问题&#xff0c;那么这种情况该怎么解决呢&#xff1f; 适用场景 二进制文件与符号文件分离的情况。 # 将test中的调试信息以外的数据剥离&#xff0c;生成符号文…

性能分析与调优: Linux 文件系统观测工具

目录 一、实验 1.环境 2.mount 3.free 4.top 5.vmstat 6.sar 7.slabtop 8.strace 9.opensnoop 10.filetop 11.cachestat 二、问题 1.Ftrace实例如何实现 2.Function trace 如何跟踪实例 3.function_graph Trace 如何跟踪实例 4.trace event 如何跟踪实例 5.未…

C语言入门教程,C语言学习教程(第一部分:编程基础 )二

九、进制详解&#xff1a;二进制、八进制和十六进制 我们平时使用的数字都是由 0~9 共十个数字组成的&#xff0c;例如 1、9、10、297、952 等&#xff0c;一个数字最多能表示九&#xff0c;如果要表示十、十一、二十九、一百等&#xff0c;就需要多个数字组合起来。 例如表示…

SpringIOC之support模块GenericApplicationContext

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

外贸企业建站步骤有哪些?海洋建站怎么做?

外贸企业建站平台推荐&#xff1f;做外贸如何搭建贸易网站&#xff1f; 外贸企业要想在激烈的市场竞争中立于不败之地&#xff0c;建立一个专业而吸引人的网站是至关重要的一环。海洋建站将深入探讨外贸企业建站的关键步骤&#xff0c;为您提供一个清晰的指南&#xff0c;助您…

自行车商城网站网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea

【自行车商城网站网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea】 https://www.bilibili.com/video/BV1wT4y1p7jq/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605

xilinix 7系列器件生成已加密文件和已经过身份验证的文件

注释 &#xff1a;如需了解更多信息&#xff0c;请参阅《使用加密确保 7 系列 FPGA 比特流的安全》(XAPP1239)。 要生成加密比特流&#xff0c;请在 Vivado IDE 中打开已实现的设计。在主工具栏中&#xff0c;依次选择“Flow” → “Bitstream Settings”&#xff08;流程 >…

ARCGIS PRO SDK 设置UI控件状态:启用/禁用

举例&#xff1a; 第一步&#xff1a;添加两个 Button 分别命名为Connect、Disconnect 第二步&#xff1a;nfig.daml添加状态和条件&#xff1a;在 DAML 中定义条件。请记住&#xff0c;条件存在于模块标记<modules>之外&#xff0c;下代码定义&#xff1a;Disconnected_…

前端八股文(网络篇)一

目录 1.Get和Post的请求的区别 2.常见的HTTP请求头和响应头 3.常见的HTTP请求方法 4.HTTP与HTTPS协议的区别 5.对keep-alive的理解 6.页面有多张图片&#xff0c;HTTP是怎样的加载表现&#xff1f; 7.HTTP请求报文是什么样的&#xff1f; 8.HTTP响应报文是什么样&#x…

基于SSM+BootStrap的学生宿舍管理系统(带文档、Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

速卖通跨境智星:解决IP及环境问题,实现批量注册轻松搞定

如果想要注册大批量的速卖通买家号&#xff0c;关键问题之一就是IP及浏览环境的管理。为了确保每个账号都能独立运行&#xff0c;使用独立的IP是必不可少的。近期&#xff0c;速卖通跨境智星备受关注&#xff0c;支持绑定代理IP&#xff0c;并内置反指纹技术&#xff0c;为用户…

阿里云99元赠送云·原生建站(电商版)是什么?

购买阿里云99元服务器赠送云原生建站&#xff08;电商版&#xff09;&#xff0c;什么是云原生建站&#xff1f;类似模板建站&#xff0c;云原生建站预置响应式模板CMS内容管理系统&#xff0c;用户可以按需随意切换模板样式&#xff0c;通过模板可视化在线编辑轻松完成网站搭建…

湖南大学-数据库系统-2017期末考试解析

【写在前面】 这是2017年的卷子&#xff0c;复习备考的时候做了并与同学校对了答案。答案仅供参考。这张难度不大&#xff0c;比起前一年的并没有增加什么知识点。这一年好像没有简答题。 一、 单选题&#xff08;每小题 2 分&#xff0c;共 20 分&#xff09; 1 、数据库的概…