如何在flutter中从共享首选项返回多个值?

时间:2019-08-07 09:58:10

标签: flutter

我想从共享的首选项中获取多个值。我已经在此页面上创建了一个页面,存在多个布尔值,我希望当用户检查该值并转到其他页面时,他将返回,然后将保留所有值状态。

1 个答案:

答案 0 :(得分:0)

您应该成为对象并存储到share-preference中 例如:

class Data
{
List<bool> list;
Data(this.list);

factory Data.fromJson(Map<String, dynamic> json) =>
      _$DataFromJson(json);

  Map<String, dynamic> toJson() => _$DataToJson(this);
}

以Sharepreference存储数据

 await SharePreferencesHelper.getInstant().setString('key_data',jsonEncode(data.toJson()));

数据是数据类的对象,并且包含布尔数据列表

从sharepreference获取数据

SharedPreferences prefs = await SharedPreferences.getInstance();
    String data = prefs.getString('key_data');

    if (data == null) {
      return null;
    } else {
      return Data.fromJson(jsonDecode(data));
    }