Datetime Flatter我如何在共享首选项中保存我的日期
我想将从日期时间选择器中选择的日期保存在共享首选项中,以便在重新启动应用程序后也能显示Datetime Flatter我如何在共享首选项中保存我的日期,datetime,flutter,save,sharedpreferences,shared,Datetime,Flutter,Save,Sharedpreferences,Shared,我想将从日期时间选择器中选择的日期保存在共享首选项中,以便在重新启动应用程序后也能显示 child: InkWell( onTap: (){ DatePicker.showDateTimePicker(context, showTitleActions: true, minTime: DateTime.now(
child: InkWell(
onTap: (){
DatePicker.showDateTimePicker(context,
showTitleActions: true,
minTime: DateTime.now().toLocal(),
onConfirm: (date){
setState(() {
_dateTime = date;
});
},
currentTime: DateTime.now().toLocal(),
locale: LocaleType.de
);
},
child: Text(
(_dateTime == null ? 'Wählen sie Ihren nächsten Termin' : DateFormat("dd-MM-yyyy hh:mm").format(_dateTime)),
style: TextStyle(
fontSize: data.size.height / 29,
color: Colors.grey[400],
),
),
),
将其转换为字符串并保存
prefs.setString('dateTimeString', _dateTime.toIso8601String());
然后使用DateTime.parse检索它:
DateTime _dateTime = DateTime.parse(prefs.getString('dateTimeString'));
将其转换为字符串并保存
prefs.setString('dateTimeString', _dateTime.toIso8601String());
然后使用DateTime.parse检索它:
DateTime _dateTime = DateTime.parse(prefs.getString('dateTimeString'));
此外,您还可以看看Flitter安全存储包。 在这里: 我在我的项目中使用过它,它就像一种魅力。 只需导入包并执行以下操作即可:
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
// Create storage
final storage = new FlutterSecureStorage();
// Read value
String value = await storage.read(key: key);
// Read all values
Map<String, String> allValues = await storage.readAll();
// Delete value
await storage.delete(key: key);
// Delete all
await storage.deleteAll();
// Write value
await storage.write(key: key, value: value);
此外,您还可以看看Flitter安全存储包。 在这里: 我在我的项目中使用过它,它就像一种魅力。 只需导入包并执行以下操作即可:
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
// Create storage
final storage = new FlutterSecureStorage();
// Read value
String value = await storage.read(key: key);
// Read all values
Map<String, String> allValues = await storage.readAll();
// Delete value
await storage.delete(key: key);
// Delete all
await storage.deleteAll();
// Write value
await storage.write(key: key, value: value);
现在我做到了:
FlutterSecureStorage storage;
@override
void initState() {
super.initState();
storage = FlutterSecureStorage();
}
@override
void dispose() {
super.dispose();
storage = null;
}
String testa;
然后像这样使用它:
child: InkWell(
onTap: (){
DatePicker.showDateTimePicker(context,
showTitleActions: true,
minTime: DateTime.now(),
onConfirm: (date){
setState(() {
//_dateTime = date;
storage.write(key: SECURE_NOTE_KEY, value: date.toIso8601String());
testa = storage.read(key: SECURE_NOTE_KEY).toString();
});
},
currentTime: DateTime.now(),
locale: LocaleType.de
);
},
child: Text(
(testa == null ? 'Wählen sie Ihren nächsten Termin' : testa),
style: TextStyle(
fontSize: data.size.height / 29,
color: Colors.grey[400],
),
),
),
但它不起作用 现在我做到了:
FlutterSecureStorage storage;
@override
void initState() {
super.initState();
storage = FlutterSecureStorage();
}
@override
void dispose() {
super.dispose();
storage = null;
}
String testa;
然后像这样使用它:
child: InkWell(
onTap: (){
DatePicker.showDateTimePicker(context,
showTitleActions: true,
minTime: DateTime.now(),
onConfirm: (date){
setState(() {
//_dateTime = date;
storage.write(key: SECURE_NOTE_KEY, value: date.toIso8601String());
testa = storage.read(key: SECURE_NOTE_KEY).toString();
});
},
currentTime: DateTime.now(),
locale: LocaleType.de
);
},
child: Text(
(testa == null ? 'Wählen sie Ihren nächsten Termin' : testa),
style: TextStyle(
fontSize: data.size.height / 29,
color: Colors.grey[400],
),
),
),
但它不起作用 有一个包可以与共享首选项交互:是的,但我猜我不能保存日期时间数据类型?有一个包可以与共享首选项交互:是的,但我猜我不能保存日期时间数据类型?我需要创建一个函数吗?或者我可以直接在onTap小部件或文本小部件中使用它吗?对不起,我是新手,我需要做一个函数吗?或者我可以直接在onTap小部件中使用它,或者更确切地说是在文本小部件中使用它吗?对不起,我是新来的。有没有其他例子?我不是100%舒尔,我必须如何使用它。请转到软件包的url:。然后转到示例选项卡。它的安装和使用非常简单。并且它被加密作为奖励。有没有关于这个im的三个例子不是100%舒尔我必须如何使用它。转到软件包的url:。然后转到示例选项卡。它的安装和使用非常简单。我认为应该在storage.write和storage.read函数调用前面使用wait关键字,因为它们是异步的。顺便说一句,很抱歉回复太晚。我认为您应该在storage.write和storage.read函数调用前面使用wait关键字,因为它们是异步的。顺便说一句,很抱歉回复晚了。