Flutter本地数据存储插件flueco_shared_preferences的使用
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
更多关于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();