Flutter本地数据存储插件shared_prefs_manager的使用
Flutter本地数据存储插件shared_prefs_manager的使用
特性
提供了对SharedPreferences API的大部分访问。允许获取和设置SharedPreferences值。还有其他杂项API引用SP。
开始
在pubspec.yaml
文件中添加shared_prefs_manager
依赖。
使用
完整的示例代码可以在以下链接查看:
import 'package:shared_prefs_manager/shared_prefs_manager.dart';
void main() async {
// 初始化SharedPreferences
initSharedPrefs();
// 获取所有键
Set<String> allKeys = getAllKeys();
print(allKeys);
// 设置一个整数值
bool intWasSet = await setIntValue("myIntValue", 1121);
if (intWasSet) {
// 检查键是否存在
bool valKeyDoesExist = prefsContainsKey("myIntValue");
// 获取整数值
int myIntVal = getIntValue("myIntValue");
print(valKeyDoesExist); // 输出: true
print(myIntVal); // 输出: 1121
}
// 移除指定键
prefsRemove("myIntValue");
// 清空所有键值对
prefsClearAll();
// 再次获取所有键
allKeys = getAllKeys();
print(allKeys); // 输出: []
}
详细步骤
-
初始化SharedPreferences
initSharedPrefs();
-
设置一个整数值
bool intWasSet = await setIntValue("myIntValue", 1121);
setIntValue
方法用于设置一个整数类型的值。如果设置成功,返回true
,否则返回false
。 -
检查键是否存在
bool valKeyDoesExist = prefsContainsKey("myIntValue");
prefsContainsKey
方法用于检查给定的键是否存在于SharedPreferences中。 -
获取整数值
int myIntVal = getIntValue("myIntValue");
getIntValue
方法用于获取指定键对应的整数值。 -
移除指定键
prefsRemove("myIntValue");
prefsRemove
方法用于移除指定键及其对应的值。 -
清空所有键值对
prefsClearAll();
prefsClearAll
方法用于清除SharedPreferences中的所有键值对。 -
获取所有键
Set<String> allKeys = getAllKeys(); print(allKeys);
更多关于Flutter本地数据存储插件shared_prefs_manager的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter本地数据存储插件shared_prefs_manager的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
shared_preferences
是 Flutter 中用于存储简单键值对数据的插件,适用于存储轻量级的本地数据,如用户设置、应用配置等。shared_prefs_manager
是一个基于 shared_preferences
的封装库,提供了更简洁的 API 来管理本地存储。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 shared_prefs_manager
依赖:
dependencies:
flutter:
sdk: flutter
shared_prefs_manager: ^1.0.0
然后运行 flutter pub get
来安装依赖。
2. 初始化 SharedPrefsManager
在使用 SharedPrefsManager
之前,需要先初始化它。通常可以在 main.dart
中进行初始化:
import 'package:flutter/material.dart';
import 'package:shared_prefs_manager/shared_prefs_manager.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedPrefsManager.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'SharedPrefsManager Example',
home: MyHomePage(),
);
}
}
3. 使用 SharedPrefsManager
进行数据存储和读取
SharedPrefsManager
提供了多种方法来存储和读取数据。以下是一些常见的操作示例:
存储数据
// 存储字符串
await SharedPrefsManager.setString('key_string', 'Hello, World!');
// 存储整数
await SharedPrefsManager.setInt('key_int', 42);
// 存储布尔值
await SharedPrefsManager.setBool('key_bool', true);
// 存储浮点数
await SharedPrefsManager.setDouble('key_double', 3.14);
// 存储字符串列表
await SharedPrefsManager.setStringList('key_list', ['item1', 'item2']);
读取数据
// 读取字符串
String stringValue = SharedPrefsManager.getString('key_string') ?? 'default_value';
// 读取整数
int intValue = SharedPrefsManager.getInt('key_int') ?? 0;
// 读取布尔值
bool boolValue = SharedPrefsManager.getBool('key_bool') ?? false;
// 读取浮点数
double doubleValue = SharedPrefsManager.getDouble('key_double') ?? 0.0;
// 读取字符串列表
List<String> listValue = SharedPrefsManager.getStringList('key_list') ?? [];
删除数据
// 删除指定键的数据
await SharedPrefsManager.remove('key_string');
// 清除所有数据
await SharedPrefsManager.clear();
4. 示例代码
以下是一个完整的示例,展示了如何使用 SharedPrefsManager
存储和读取数据:
import 'package:flutter/material.dart';
import 'package:shared_prefs_manager/shared_prefs_manager.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedPrefsManager.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'SharedPrefsManager Example',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String _storedValue = '';
[@override](/user/override)
void initState() {
super.initState();
_loadStoredValue();
}
Future<void> _loadStoredValue() async {
String value = SharedPrefsManager.getString('key_string') ?? 'No value stored';
setState(() {
_storedValue = value;
});
}
Future<void> _storeValue() async {
await SharedPrefsManager.setString('key_string', 'Hello, SharedPrefsManager!');
_loadStoredValue();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('SharedPrefsManager Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Stored Value:',
style: Theme.of(context).textTheme.headline4,
),
Text(
_storedValue,
style: Theme.of(context).textTheme.headline6,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _storeValue,
child: Text('Store Value'),
),
],
),
),
);
}
}