gpt4 book ai didi

flutter - 如何使用共享首选项保存 bool 值

转载 作者:行者123 更新时间:2023-12-04 01:20:31 33 4
gpt4 key购买 nike

所以我在我的应用程序中创建了一个类别部分,您可以在其中通过单击容器来选择多个类别。您选择的容器会改变颜色。我想要做的是保存使用共享首选项选择的选项,并在用户想要查看他选择的类别时再次显示它。

return GestureDetector(
onTap: () {
setState(() {
if (isSelected == false) {
isSelected = !isSelected;
color = widget.color;
print('Coming here');
} else {
isSelected = false;
color = Colors.white;
}
prefs.setBool(_key, isSelected);
});
},
child: AnimatedContainer(
padding: EdgeInsets.all(widget.padding),
decoration: BoxDecoration(
color: color,
shape: BoxShape.circle,
),
duration: Duration(milliseconds: 500),
child: Container(
child: Text(
widget.labelText,
style: TextStyle(
color: kLightBlue,
fontFamily: 'clanproBold',
fontSize: SizeConfig.blockSizeHorizontal * 3),
),
),
),
);

这是创建多个容器的代码。如何保存选项?

最佳答案

首先,您必须在您的pubspec.yaml 文件中添加shared preferences 的依赖,如下所示:

dependencies:
flutter:
sdk: flutter
shared_preferences: "<newest version>"

之后你必须将包导入到你的类中:

import 'package:shared_preferences/shared_preferences.dart';

然后在想要保存选项的状态下添加如下代码:

_saveOptions() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setBool('option', true);
}

您可以使用以下代码读取保存在 SharedPreferences 中的数据:

  SharedPreferences prefs = await SharedPreferences.getInstance();
bool boolValue = prefs.getBool('option');

重要提示:您只能保存intStringdoublebool> 使用 SharedPreferences 的变量。

所以如果你想保存用户给的选项,你只能使用上面的类型。您可以通过将选项的值作为 Stringint 传递给 SharedPrefrences 并将它们再次转换回来来使其工作。

例子:

Color color = new Color(0x#BD452C);
int colorValue = color.value;
String colorString = color.toString();
Color newColor = new Color(colorValue);

关于flutter - 如何使用共享首选项保存 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62720182/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com