0
点赞
收藏
分享

微信扫一扫

Flutter实现将变量保存到本地,之后调用它

1、首先,在pubspec.yaml文件中添加shared_preferences依赖:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.9

这里的版本你需要自己到官网选择下载:Dart package

2、运行flutter pub get命令来获取依赖包。

3、在需要保存变量的地方,导入相关库:

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

4、使用以下代码将变量保存到本地并进行赋值:

Future<void> saveVariable(int value) async {
  final prefs = await SharedPreferences.getInstance();
  await prefs.setInt('my_variable', value);
}

Future<int> loadVariable() async {
  final prefs = await SharedPreferences.getInstance();
  return prefs.getInt('my_variable') ?? 0;
}

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Save Variable Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Save Variable Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  saveVariable(42).then((_) {
                    print('Variable saved successfully.');
                  }).catchError((error) {
                    print('Failed to save variable: $error');
                  });
                },
                child: Text('Save Variable'),
              ),
              SizedBox(height: 16),
              FutureBuilder<int>(
                future: loadVariable(),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    final value = snapshot.data!;
                    return Text('My variable is: $value');
                  } else if (snapshot.hasError) {
                    return Text('Failed to load variable');
                  } else {
                    return CircularProgressIndicator();
                  }
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在这个示例中,saveVariable函数使用SharedPreferences.getInstance方法获取SharedPreferences实例,并使用setInt方法将变量保存为整数值。loadVariable函数使用getInt方法从SharedPreferences中读取变量的值。

你可以通过调用saveVariable函数将要写入的变量保存到本地,然后通过调用loadVariable函数来加载并赋值给其他变量。在这个例子中,我们在按钮点击时保存变量为42,并在界面上显示变量的值。

shared_preferences库中,数据会被保存在设备的本地存储中。具体来说,对于Android设备,数据将被保存在SharedPreferences文件中;而对于iOS设备,数据将被保存在NSUserDefaults中。

这些本地存储的位置是由操作系统管理的,并且对应用程序来说是私有的。这意味着其他应用程序无法访问你的应用程序保存的数据。

总之,当你调用SharedPreferences.getInstance()方法时,它会返回一个SharedPreferences实例,该实例提供了一组方法来保存和读取键值对数据,具体的存储位置是由底层操作系统决定的。你不需要关心具体的存储位置,只需通过相关方法进行存储和读取即可。

需要注意的是shared_preferences库适用于存储小型的键值对数据。如果你需要存储更复杂的数据结构,可以考虑使用其他持久化解决方案,如数据库或文件存储。

举报

相关推荐

0 条评论