我知道如何判断共享首选项中是否存在单个密钥,例如:

bool check = preferences.containsKey('weight');

但是,如果我想一次判断多个密钥,情况如下:

bool check = preferences.containsKey('weight','height',userName...ect);

是否可以以某种方式同时判断多个值?

推荐答案

SharedPreferences中没有这样做的方法,但您可以编写一个扩展方法,使其看起来像有:

extension SharedPreferencesExtensions on SharedPreferences {
  bool containsAllKeys(Iterable<String> keys) {
    return !keys.any((key) => !this.containsKey(key));
  }
}

现在你可以这样称呼它:

bool check = preferences.containsAllKeys(['weight','height',userName...ect]);

Flutter相关问答推荐

在Flutter中,有没有一种方法可以点击页面到后面的页面?

我不能通过第5步了解Flutter 翼Firebase教程

Flutter 蜂窝-检索非基元数据类型列表

Flutter /dart 列表.第一个子类列表中的Where()错误

try 使用fl_Chart of Ffltter,但在导入它时遇到以下错误:Error:';TextScaler';is;t a type

按一下按钮即可更新 fl_chart

使用 Firebase Realtime 实现高效流式传输

使用 Flutter 显示/隐藏带有下拉抽屉动画的小部件

在 Flutter 中使用条件语句设置 ImageProvider Object 类型的背景图像

找不到任何与 com.google.firebase:firebase-sessions:[15.0.0, 16.0.0) 匹配的版本

如何在 Flutter (iOS) 中解决这个问题

Flutter - 如何将按钮对齐到行的右侧

Flutter 构建方法使用的是旧版本的变量?

Flutter - 定义按钮的优雅方式

容器在发布模式下显示灰色框(抖动)

Flutter 如何使用 ClipPath 编辑容器的顶部?

Flutter:制作自定义小部件的最佳做法是什么?

我可以使用 Future 来填充Text() 小部件而不是在 Flutter 中使用 FutureBuilder 吗?

Textfield 和 MasonryGrid 给出错误(垂直视口的高度没有限制)

如何验证位于 PageView 内不同页面的 TextFormFields