【问题标题】:How to save multiple bool from list in Flutter with SharedPreferences如何使用 SharedPreferences 从 Flutter 中的列表中保存多个布尔值
【发布时间】:2021-04-20 23:10:15
【问题描述】:

我创建了一个 bool 列表:

List<bool> switchbool = [true, true, true, true];

在切换开关时,值会发生变化(非常明显......)。但我想将这些信息完全存储在列表中,因为我是这样使用它们的:

Switch(
       value: switchbool[index],
       onChanged: (value) {
       _saveBoolFromSharedPref(value, app[index]);
       setState(() {
    switchbool[index] = value;
    });
 },

)

但是这样它不会加载存储在我保存的 sharedPreferences 中的 true 或 false ...

Future<void> _getBoolFromSharedPref() async {
final prefs = await SharedPreferences.getInstance();
switchbool.length = app.length;
for (var i = 0; i < app.length; i += 1) {
  final myBool = prefs.getBool(app[i]) ?? false;
}

} 这是 _saveBoolFromSharedPref

Future<bool> _saveBoolFromSharedPref(bool value, String appName) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool(appName, value);
//print(switchbool);

}

任何建议都会很棒,非常感谢! 如果我可以从开关上的 value 字段中检索数据,但我在任何地方都没有看到任何答案......

【问题讨论】:

  • 你也可以添加你的 _saveBoolFromSharedPref 方法吗?
  • @zeus 应该没问题吧?
  • 检查我的答案@Malopieds。

标签: list flutter sharedpreferences


【解决方案1】:

也许将您的值存储在地图中,然后对其进行解码/编码。如下:

var jsn = prefs.getString('Map');
Map = json.decode(jsn);


 var jsn = json.encode(Map);
 prefs.setString('Map', jsn);

如果有帮助,请告诉我。

【讨论】:

  • 首先感谢您的回复,但我不明白我应该如何使用地图,我还没有看到将 bool 存储在其中的可能性,但我必须将其转换为细绳?抱歉,我是 Flutter 新手,但非常感谢!
  • 反编码和编码提供了将它存储在 sharedPreferences 中的可能性......也许你可以对列表做同样的事情,我不确定
  • 我适应this 网站和evertyhting 工作谢谢!
【解决方案2】:

试试这个_getBoolFromSharedPref 方法。

Future<void> _getBoolFromSharedPref() async {
final prefs = await SharedPreferences.getInstance();
switchbool.length = app.length;
for (var i = 0; i < app.length; i += 1) {
  switchbool[i] = prefs.getBool(app[i]) ?? false;
}

【讨论】:

  • 我已经尝试过了,但是谢谢,看起来 List switchbool 是第一个,而 _getBoolFromSharedPref 甚至没有被监听:/
  • @Malopieds 抱歉,我不明白您所说的“先采取,甚至没有听 _getBoolFromSharedPref”的意思
  • 是的,我的意思不是很清楚,就像列表对未来的虚空具有优先权,因此它始终存储为“假”。但是 rottler35 的回答就像一个魅力,但感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
相关资源
最近更新 更多