本文介绍了扑翼:如何获取除某些关键点之外的所有SharedPreferences关键点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要获取除两个密钥之外的所有SharedPreferences密钥
我无法使用getString(Key)方法,因为有N个键。
Future<List<Widget>> getAllPrefs() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
// I won't print those two keys neither remove them
// prefs.remove("lib_cached_image_data");
// prefs.remove("lib_cached_image_data_last_clean");
prefs.setString("Market", "position");
prefs.setString("Home", "position");
return prefs.getKeys().map<Widget>((key) {
//this is incorrect
if (key != "lib_cached_image_data" && key != "lib_cached_image_data") {
ListTile(
title: Text(key),
subtitle: Text(prefs.get(key).toString()),
);
}
}).toList(growable: false);
}
我期望输出:all("Keys","Values"),除了("lib_cached_image_data",value),("lib_cached_image_data_last_lean",value)
推荐答案
您可以使用where
。也不要忘记返回ListTile
。
final SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.getKeys().where((String key) => key != "lib_cached_image_data" && key != "lib_cached_image_data").map<Widget>((key) {
return ListTile(
title: Text(key),
subtitle: Text(prefs.get(key).toString()),
);
}).toList(growable: false);
这篇关于扑翼:如何获取除某些关键点之外的所有SharedPreferences关键点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!