当前位置: 首页 > 知识库问答 >
问题:

如何用SharedPreferences保存Flutter中列表中的多个bool

宰父嘉胜
2023-03-14

我已经创建了一个布尔列表:

List<bool> switchbool = [true, true, true, true];
Switch(
       value: switchbool[index],
       onChanged: (value) {
       _saveBoolFromSharedPref(value, app[index]);
       setState(() {
    switchbool[index] = value;
    });
 },
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;
}
Future<bool> _saveBoolFromSharedPref(bool value, String appName) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool(appName, value);
//print(switchbool);

}

任何建议都会很好,非常感谢!如果我可以从开关上的值字段中重建数据,但我没有看到任何答案...

共有1个答案

王波
2023-03-14

也许将您的值存储在映射中,然后对它们进行解码/编码。如下所示:

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


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

如果有帮助就告诉我。

 类似资料: