Flutter本地存储管理插件preferences_utilities的使用
Flutter本地存储管理插件preferences_utilities的使用
preferences_utilities
是一个非常简单的 SharedPreferences
封装库,用于简化本地存储的使用。通过该库,您可以更方便地读取和写入本地数据。
安装
在您的 pubspec.yaml
文件中添加以下依赖:
dependencies:
preferences_utilities: ^0.1.0
然后运行 flutter pub get
来安装该库。
使用示例
以下是一个完整的示例,展示如何使用 preferences_utilities
进行本地存储管理。
1. 导入库
首先,在您的 Dart 文件中导入 preferences_utilities
库:
import 'package:preferences_utilities/preferences_utilities.dart';
2. 初始化
在应用程序启动时初始化 PreferencesUtilities
。通常可以在 main()
函数中完成:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await PreferencesUtilities.init();
runApp(MyApp());
}
3. 写入数据
您可以使用 PreferencesUtilities
提供的方法来写入不同类型的数据:
Future<void> saveData() async {
// 保存字符串
await PreferencesUtilities.setString('username', 'JohnDoe');
// 保存布尔值
await PreferencesUtilities.setBool('isLoggedIn', true);
// 保存整数值
await PreferencesUtilities.setInt('age', 25);
// 保存双精度浮点数
await PreferencesUtilities.setDouble('height', 1.80);
// 保存列表
await PreferencesUtilities.setStringList('favoriteColors', ['Red', 'Green', 'Blue']);
}
4. 读取数据
读取数据时,可以使用相应的方法来获取之前保存的值:
Future<void> loadData() async {
// 获取字符串
String? username = await PreferencesUtilities.getString('username');
print('Username: $username');
// 获取布尔值
bool? isLoggedIn = await PreferencesUtilities.getBool('isLoggedIn');
print('Is Logged In: $isLoggedIn');
// 获取整数值
int? age = await PreferencesUtilities.getInt('age');
print('Age: $age');
// 获取双精度浮点数
double? height = await PreferencesUtilities.getDouble('height');
print('Height: $height');
// 获取列表
List<String>? favoriteColors = await PreferencesUtilities.getStringList('favoriteColors');
print('Favorite Colors: $favoriteColors');
}
5. 删除数据
如果您需要删除某个键对应的值,可以使用以下方法:
Future<void> deleteData() async {
// 删除单个键值对
await PreferencesUtilities.remove('username');
// 清空所有数据
await PreferencesUtilities.clear();
}
完整示例代码
以下是完整的示例代码,包含初始化、写入、读取和删除功能:
import 'package:flutter/material.dart';
import 'package:preferences_utilities/preferences_utilities.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await PreferencesUtilities.init(); // 初始化插件
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
[@override](/user/override)
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
String message = '';
Future<void> saveData() async {
// 保存数据
await PreferencesUtilities.setString('username', 'JohnDoe');
await PreferencesUtilities.setBool('isLoggedIn', true);
await PreferencesUtilities.setInt('age', 25);
await PreferencesUtilities.setDouble('height', 1.80);
await PreferencesUtilities.setStringList('favoriteColors', ['Red', 'Green', 'Blue']);
setState(() {
message = 'Data saved successfully!';
});
}
Future<void> loadData() async {
// 读取数据
String? username = await PreferencesUtilities.getString('username');
bool? isLoggedIn = await PreferencesUtilities.getBool('isLoggedIn');
int? age = await PreferencesUtilities.getInt('age');
double? height = await PreferencesUtilities.getDouble('height');
List<String>? favoriteColors = await PreferencesUtilities.getStringList('favoriteColors');
setState(() {
message = '''
Username: $username
Is Logged In: $isLoggedIn
Age: $age
Height: $height
Favorite Colors: $favoriteColors
''';
});
}
Future<void> deleteData() async {
// 删除数据
await PreferencesUtilities.remove('username');
await PreferencesUtilities.clear();
setState(() {
message = 'Data deleted successfully!';
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Preferences Utilities Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: saveData,
child: Text('Save Data'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: loadData,
child: Text('Load Data'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: deleteData,
child: Text('Delete Data'),
),
SizedBox(height: 20),
Text(message),
],
),
),
);
}
}
更多关于Flutter本地存储管理插件preferences_utilities的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter本地存储管理插件preferences_utilities的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
preferences_utilities
是一个用于简化 Flutter 应用中本地存储管理的插件。它基于 shared_preferences
插件,提供了更简洁的 API 来存储和读取数据。以下是如何使用 preferences_utilities
插件的详细步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 preferences_utilities
插件的依赖:
dependencies:
flutter:
sdk: flutter
preferences_utilities: ^1.0.0
然后运行 flutter pub get
来安装依赖。
2. 初始化 Preferences
在使用 preferences_utilities
之前,需要先初始化 Preferences
类。通常可以在 main.dart
文件中进行初始化:
import 'package:flutter/material.dart';
import 'package:preferences_utilities/preferences_utilities.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Preferences.init();
runApp(MyApp());
}
3. 存储数据
preferences_utilities
提供了多种方法来存储不同类型的数据。以下是一些常用的方法:
-
存储字符串:
Preferences.setString('key', 'value');
-
存储整数:
Preferences.setInt('key', 42);
-
存储布尔值:
Preferences.setBool('key', true);
-
存储双精度浮点数:
Preferences.setDouble('key', 3.14);
-
存储字符串列表:
Preferences.setStringList('key', ['value1', 'value2']);
4. 读取数据
读取数据的方法与存储数据的方法相对应:
-
读取字符串:
String value = Preferences.getString('key', defaultValue: 'default');
-
读取整数:
int value = Preferences.getInt('key', defaultValue: 0);
-
读取布尔值:
bool value = Preferences.getBool('key', defaultValue: false);
-
读取双精度浮点数:
double value = Preferences.getDouble('key', defaultValue: 0.0);
-
读取字符串列表:
List<String> value = Preferences.getStringList('key', defaultValue: []);
5. 删除数据
你可以使用 remove
方法来删除指定的键值对:
Preferences.remove('key');
6. 清除所有数据
如果你想清除所有存储的数据,可以使用 clear
方法:
Preferences.clear();
7. 示例代码
以下是一个完整的示例,展示了如何使用 preferences_utilities
来存储和读取数据:
import 'package:flutter/material.dart';
import 'package:preferences_utilities/preferences_utilities.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Preferences.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Preferences Utilities Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
Preferences.setString('username', 'JohnDoe');
print('Username saved');
},
child: Text('Save Username'),
),
ElevatedButton(
onPressed: () {
String username = Preferences.getString('username', defaultValue: 'Guest');
print('Username: $username');
},
child: Text('Load Username'),
),
ElevatedButton(
onPressed: () {
Preferences.remove('username');
print('Username removed');
},
child: Text('Remove Username'),
),
ElevatedButton(
onPressed: () {
Preferences.clear();
print('All data cleared');
},
child: Text('Clear All Data'),
),
],
),
),
),
);
}
}