Android开发Flutter使用SharedPreferences示例

本文介绍了如何在Flutter应用中使用shared_preferences插件来实现类似于Android的SharedPreferences功能,展示了保存和检索键值对的基本步骤,包括TextField输入、按钮操作和数据持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

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的精彩世界!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值