Flutter使用SharedPreferences示例
  G4l4hCJqRVjT 2023年12月23日 14 0

在这里插入图片描述

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 {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('SharedPreferences Example'),
        ),
        body: MySharedPreferencesDemo(),
      ),
    );
  }
}

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

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

  @override
  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();
  }

  @override
  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'),
        ],
      ),
    );
  }

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

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


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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月23日 0

暂无评论

G4l4hCJqRVjT