如何在 Flutter 中存储来自 DatePicker 的数据

Posted

技术标签:

【中文标题】如何在 Flutter 中存储来自 DatePicker 的数据【英文标题】:How to store the data from the DatePicker in Flutter 【发布时间】:2020-02-09 13:16:11 【问题描述】:

我如何存储用户设置的日期,以便每次他/她打开应用程序时,选择的日期都保留在那里,并且每次都不会刷新到初始日期。此外,我如何将我拥有的数据从假设的 Screen1.dart 传输到 Screen2.dart

Future<Null> _selectDate(BuildContext context) async 
final DateTime picked = await showDatePicker(
    context: context,
    initialDate: selectedDate,
    firstDate: DateTime(2015, 8),
    lastDate: DateTime(2101));
if (picked != null && picked != selectedDate)
  setState(() 
    selectedDate = picked;
  );

数据为selectedDate。转移是指在其他地方使用这个给定的数据来找出两个选定日期之间的差异。

【问题讨论】:

【参考方案1】:

您可以使用共享偏好来实现这一点,这里有一个与您的情况类似的示例:

How to save dateformat with sharedpref in flutter?

保存:prefs.setString('dateTimeLastClicked', currentTime);

正在加载:reftime_string = prefs.getString('dateTimeLastClicked');

【讨论】:

但是如果假设我的代码在另一个 .dart 文件中,并且结构有点复杂,我该如何保存它。例如:` Text("$selectedDate.toLocal()"), SizedBox(height: 20.0,), RaisedButton( onPressed: () => _selectDate(context), child: Text('Select date'),`我希望将代码解析到这个计算文件中:final date1 = DateTime(2000, 10, 12); final date2 = DateTime.now(); final difference = date2.difference(date1).inDays; 选择日期后,您将其保存在 Screen1.dart 中的共享首选项中,然后在 Screen2.dart 中您可以访问共享首选项并获取您之前保存的内容 我明白了,所以即使用户根据pub.dev/packages/shared_preferences 关闭应用程序权限,共享首选项也不会改变。谢谢:) 如何初始化它?我尝试在 shared_pref 上尝试示例,但我不断收到错误哈哈 检查我在回答中分享的链接问题的代码,您需要执行以下操作:SharedPreferences prefs = await SharedPreferences.getInstance();

以上是关于如何在 Flutter 中存储来自 DatePicker 的数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中,如何使用 CachedNetworkImage 显示来自 Firebase 的离线图像?

Flutter圆形头像不支持来自存储的图像

在颤振中存储来自表单的信息

如何在flutter中访问和更改来自不同文件的变量

如何在详细屏幕中查看项目的详细信息 - Flutter

如何在 Flutter 中添加来自 GitHub 的包?