Flutter本地存储插件pro_shered_preference的使用
Flutter本地存储插件pro_shered_preference的使用
平台支持
pro_shered_preference
插件支持以下平台:
- Android
- iOS
- macOS
- Web
- Linux
- Windows
开始使用
-
添加依赖
在终端中运行以下命令来添加pro_shered_preference
依赖:flutter pub add pro_shered_preference
这将自动在
pubspec.yaml
文件中添加如下依赖,并执行flutter pub get
:dependencies: pro_shered_preference: ^0.0.7
-
导入包
在 Dart 代码中导入pro_shered_preference
包:import 'package:pro_shered_preference/pro_shered_preference.dart';
使用方法
保存数据
pro_shered_preference
提供了多种方法来保存不同类型的数据。以下是一些常见的用法示例:
-
保存单个字符串
bool result = await sheredPrefHelper.setString("name", "Gautam Sheta"); // 如果数据保存成功,返回 true
-
保存多个字符串
bool result = await sheredPrefHelper.setMultiString({ "name": "Gautam Sheta", "email": "email@gmail.com", "address": "India", }); // 如果所有数据保存成功,返回 true
-
保存其他类型的数据
- 保存整数:
setInt
- 保存浮点数:
setDouble
- 保存布尔值:
setBool
- 保存字符串列表:
setStringList
- 保存整数列表:
setIntList
- 保存浮点数列表:
setDoubleList
- 保存布尔值列表:
setBoolList
- 保存动态类型列表:
setDynamicList
- 保存映射(Map):
setMap
- 保存任意类型的键值对:
set
示例:
bool result = await sheredPrefHelper.setInt("age", 25); bool result = await sheredPrefHelper.setDouble("height", 175.5); bool result = await sheredPrefHelper.setBool("isStudent", true); bool result = await sheredPrefHelper.setStringList("cities", ["New York", "London", "Paris"]);
- 保存整数:
-
批量保存数据
- 批量保存字符串:
setMultiString
- 批量保存整数:
setMultiInt
- 批量保存浮点数:
setMultiDouble
- 批量保存布尔值:
setMultiBool
- 批量保存字符串列表:
setMultiStringList
- 批量保存整数列表:
setMultiIntList
- 批量保存浮点数列表:
setMultiDoubleList
- 批量保存布尔值列表:
setMultiBoolList
- 批量保存动态类型列表:
setMultiDynamicList
- 批量保存映射(Map):
setMultiMap
- 批量保存任意类型的键值对:
setMulti
示例:
bool result = await sheredPrefHelper.setMultiString({ "name": "Gautam", "email": "gautam@example.com", "address": "India" }); bool result = await sheredPrefHelper.setMultiInt({ "age": 25, "score": 95 });
- 批量保存字符串:
获取数据
pro_shered_preference
提供了多种方法来获取不同类型的数据。以下是一些常见的用法示例:
-
获取单个字符串
String result = await sheredPrefHelper.getString("name"); // 如果找不到键或数据类型不匹配,会抛出异常
-
获取多个字符串
Map<String, String> result = await sheredPrefHelper.getMultiString([ "name", "email", "address" ]); // 如果找不到某个键或数据类型不匹配,会抛出异常
-
获取其他类型的数据
- 获取整数:
getInt
- 获取浮点数:
getDouble
- 获取布尔值:
getBool
- 获取字符串列表:
getStringList
- 获取整数列表:
getIntList
- 获取浮点数列表:
getDoubleList
- 获取布尔值列表:
getBoolList
- 获取动态类型列表:
getDynamicList
- 获取映射(Map):
getMap
- 获取任意类型的键值对:
get
示例:
int age = await sheredPrefHelper.getInt("age"); double height = await sheredPrefHelper.getDouble("height"); List<String> cities = await sheredPrefHelper.getStringList("cities");
- 获取整数:
-
批量获取数据
- 批量获取字符串:
getMultiString
- 批量获取整数:
getMultiInt
- 批量获取浮点数:
getMultiDouble
- 批量获取布尔值:
getMultiBool
- 批量获取字符串列表:
getMultiStringList
- 批量获取整数列表:
getMultiIntList
- 批量获取浮点数列表:
getMultiDoubleList
- 批量获取布尔值列表:
getMultiBoolList
- 批量获取动态类型列表:
getMultiDynamicList
- 批量获取映射(Map):
getMultiMap
- 批量获取任意类型的键值对:
getMulti
示例:
Map<String, String> result = await sheredPrefHelper.getMultiString([ "name", "email", "address" ]); Map<String, int> result = await sheredPrefHelper.getMultiInt([ "age", "score" ]);
- 批量获取字符串:
完整示例Demo
以下是一个完整的 Flutter 示例,展示了如何使用 pro_shered_preference
插件进行本地存储操作。
import 'package:flutter/material.dart';
import 'package:pro_shered_preference/pro_shered_preference.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
ProSheredPreference sheredPrefHelper = ProSheredPreference();
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Pro Shared Preference Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 单个数据保存
bool result = await sheredPrefHelper.setString("name", "Gautam Sheta");
result = await sheredPrefHelper.setInt("age", 25);
result = await sheredPrefHelper.setDouble("height", 175.5);
result = await sheredPrefHelper.setBool("isStudent", true);
result = await sheredPrefHelper.setStringList("cities", ["New York", "London", "Paris"]);
// 批量数据保存
result = await sheredPrefHelper.setMultiString({
"name": "Gautam",
"email": "gautam@example.com",
"address": "India"
});
result = await sheredPrefHelper.setMultiInt({
"age": 25,
"score": 95
});
// 获取单个数据
String name = await sheredPrefHelper.getString("name");
int age = await sheredPrefHelper.getInt("age");
double height = await sheredPrefHelper.getDouble("height");
bool isStudent = await sheredPrefHelper.getBool("isStudent");
List<String> cities = await sheredPrefHelper.getStringList("cities");
// 批量获取数据
Map<String, String> multiStringResult = await sheredPrefHelper.getMultiString([
"name",
"email",
"address"
]);
Map<String, int> multiIntResult = await sheredPrefHelper.getMultiInt([
"age",
"score"
]);
// 打印结果
print("Name: $name");
print("Age: $age");
print("Height: $height");
print("Is Student: $isStudent");
print("Cities: $cities");
print("Multi String Result: $multiStringResult");
print("Multi Int Result: $multiIntResult");
},
child: const Text("Save and Get Data"),
),
),
);
}
}
更多关于Flutter本地存储插件pro_shered_preference的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter本地存储插件pro_shered_preference的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter中使用pro_shered_preference
(注意:通常可能是指shared_preferences
,因为pro_shered_preference
不是一个广为人知的Flutter插件)进行本地存储的代码示例。由于shared_preferences
是一个非常流行的Flutter插件,用于简单的键值对存储,我假设你是指这个插件。
首先,确保你已经在pubspec.yaml
文件中添加了shared_preferences
依赖:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.15 # 请检查最新版本号
然后,运行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(
title: 'Shared Preferences Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late SharedPreferences _preferences;
String? _savedValue;
@override
void initState() {
super.initState();
// 初始化SharedPreferences实例
_initPreferences();
}
Future<void> _initPreferences() async {
_preferences = await SharedPreferences.getInstance();
setState(() {
// 从SharedPreferences中读取数据
_savedValue = _preferences.getString('my_key');
});
}
Future<void> _saveValue() async {
final String valueToSave = 'Hello, SharedPreferences!';
setState(() {
_savedValue = valueToSave;
});
// 将数据保存到SharedPreferences中
await _preferences.setString('my_key', valueToSave);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Shared Preferences Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Saved Value: $_savedValue',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _saveValue,
child: Text('Save Value'),
),
],
),
),
);
}
}
在这个示例中:
- 在
initState
方法中,我们调用_initPreferences
来初始化SharedPreferences
实例,并从存储中读取现有的值(如果有的话)。 _saveValue
方法用于保存一个新的值到SharedPreferences
中,并更新UI以显示新保存的值。- UI包含一个
Text
小部件,用于显示当前保存的值,以及一个ElevatedButton
,用于触发保存操作。
这样,你就可以在Flutter应用中使用shared_preferences
进行本地存储了。记得在真实的应用中处理可能的异常,例如当SharedPreferences.getInstance()
失败时。