Android开发Flutter使用SharedPreferences示例

2024-01-09 12:30:35

在这里插入图片描述

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的精彩世界!

文章来源:https://blog.csdn.net/yikezhuixun/article/details/134975368
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。