Flutter本地数据存储插件flueco_shared_preferences的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter本地数据存储插件flueco_shared_preferences的使用

Flueco SharedPreferences 是一个用于管理 Flutter 应用本地存储的工具。它利用了 shared_preferences 包来实现。

安装

在你的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  flueco_shared_preferences: {version}

然后运行 flutter pub get 来获取该包。

使用示例

下面是一个简单的示例,展示了如何使用 flueco_shared_preferences 插件进行本地数据存储和读取。

存储数据

首先,我们需要导入 flueco_shared_preferences 包,并初始化 SharedPreferences 实例。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 SharedPreferences 实例
  await FluecoSharedPreferences.init();

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flueco SharedPreferences 示例'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 存储字符串
              await FluecoSharedPreferences.setString('username', '张三');
              
              // 存储整数
              await FluecoSharedPreferences.setInt('age', 25);
              
              // 存储布尔值
              await FluecoSharedPreferences.setBool('isStudent', true);
              
              // 存储双精度浮点数
              await FluecoSharedPreferences.setDouble('score', 98.5);
              
              // 存储列表
              await FluecoSharedPreferences.setStringList('favoriteColors', ['红色', '蓝色', '绿色']);
              
              print('数据已成功存储');
            },
            child: Text('存储数据'),
          ),
        ),
      ),
    );
  }
}
读取数据

接下来,我们展示如何从 SharedPreferences 中读取之前存储的数据。

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flueco SharedPreferences 示例'),
        ),
        body: FutureBuilder(
          future: Future.wait([
            FluecoSharedPreferences.getString('username'),
            FluecoSharedPreferences.getInt('age'),
            FluecoSharedPreferences.getBool('isStudent'),
            FluecoSharedPreferences.getDouble('score'),
            FluecoSharedPreferences.getStringList('favoriteColors'),
          ]),
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              if (snapshot.hasError) {
                return Center(child: Text('加载失败: ${snapshot.error}'));
              } else {
                final username = snapshot.data![0] ?? '未设置';
                final age = snapshot.data![1]?.toString() ?? '未设置';
                final isStudent = snapshot.data![2] ?? false;
                final score = snapshot.data![3]?.toStringAsFixed(2) ?? '未设置';
                final favoriteColors = snapshot.data![4] ?? ['未设置'];

                return Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    Text('用户名: $username'),
                    Text('年龄: $age'),
                    Text('是否学生: ${isStudent ? '' : ''}'),
                    Text('分数: $score'),
                    Text('喜欢的颜色: ${favoriteColors.join(', ')}'),
                  ],
                );
              }
            } else {
              return Center(child: CircularProgressIndicator());
            }
          },
        ),
      ),
    );
  }
}

更多关于Flutter本地数据存储插件flueco_shared_preferences的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter本地数据存储插件flueco_shared_preferences的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flueco_shared_preferences 是一个基于 shared_preferences 的 Flutter 插件,提供了更方便的方式来在本地存储和读取数据。它封装了 shared_preferences 的常用操作,使得开发者可以更简洁地使用本地存储功能。

安装

首先,你需要在 pubspec.yaml 文件中添加 flueco_shared_preferences 依赖:

dependencies:
  flutter:
    sdk: flutter
  flueco_shared_preferences: ^0.0.1  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

基本用法

1. 初始化

在使用 flueco_shared_preferences 之前,你需要先初始化它。通常可以在 main.dart 中进行初始化:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FluecoSharedPreferences.init();  // 初始化
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flueco Shared Preferences Example',
      home: HomePage(),
    );
  }
}

2. 存储和读取数据

flueco_shared_preferences 提供了多种方法来存储和读取不同类型的数据。

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

class HomePage extends StatelessWidget {
  Future<void> _saveData() async {
    await FluecoSharedPreferences.setString('key_string', 'Hello, Flutter!');
    await FluecoSharedPreferences.setInt('key_int', 42);
    await FluecoSharedPreferences.setBool('key_bool', true);
    await FluecoSharedPreferences.setDouble('key_double', 3.14);
    await FluecoSharedPreferences.setStringList('key_list', ['item1', 'item2']);
  }

  Future<void> _loadData(BuildContext context) async {
    String stringValue = await FluecoSharedPreferences.getString('key_string', 'default_value');
    int intValue = await FluecoSharedPreferences.getInt('key_int', 0);
    bool boolValue = await FluecoSharedPreferences.getBool('key_bool', false);
    double doubleValue = await FluecoSharedPreferences.getDouble('key_double', 0.0);
    List<String> listValue = await FluecoSharedPreferences.getStringList('key_list', []);

    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(
        content: Text(
          'String: $stringValue\nInt: $intValue\nBool: $boolValue\nDouble: $doubleValue\nList: $listValue',
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flueco Shared Preferences Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _saveData,
              child: Text('Save Data'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () => _loadData(context),
              child: Text('Load Data'),
            ),
          ],
        ),
      ),
    );
  }
}

3. 删除数据

你可以使用 remove 方法来删除特定的键值对:

await FluecoSharedPreferences.remove('key_string');

4. 清除所有数据

你可以使用 clear 方法来清除所有的存储数据:

await FluecoSharedPreferences.clear();
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!