shared_preferences是一个Flutter插件,用于在应用程序中轻松地存储和检索持久化的键值对数据。这些数据可以被应用程序的所有组件共享,并且在应用程序关闭后也会保留在设备上。
以下是一个简单的示例,演示如何在Flutter应用中使用shared_preferences插件来保存和读取数据:
首先,在pubspec.yaml文件中添加shared_preferences插件的依赖:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.6
然后运行flutter pub get来获取依赖包。
接下来,可以在Flutter应用的任何地方使用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(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
TextEditingController _controller = TextEditingController();
String _savedText = '';
@override
void initState() {
super.initState();
_loadSavedText();
}
// Function to load saved text from SharedPreferences
void _loadSavedText() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
_savedText = prefs.getString('saved_text') ?? '';
});
}
// Function to save text to SharedPreferences
void _saveText() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('saved_text', _controller.text);
setState(() {
_savedText = _controller.text;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Shared Preferences Example'),
),
body: Padding(
padding: EdgeInsets.all(20.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
TextField(
controller: _controller,
decoration: InputDecoration(labelText: 'Enter some text'),
),
SizedBox(height: 20.0),
ElevatedButton(
onPressed: _saveText,
child: Text('Save Text'),
),
SizedBox(height: 20.0),
Text(
'Saved Text:',
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(_savedText),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,包含一个文本输入框和一个按钮。用户在文本输入框中输入文本,并点击按钮后,该文本将被保存到SharedPreferences中,并在下次应用启动时被恢复显示。