Hou*_*sem 2 set sharedpreferences flutter
我想打印所有共享首选项内容(键,值)
键和值由用户给出
我尝试使用 getKeys() 方法将所有键放入一个集合中,然后循环该集合并检索我的元素,如下所示:
_favoritePlaces() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
// prefKeys declared as static Set<String>
prefKeys=prefs.getKeys();
if (prefKeys.isNotEmpty) {
for (int i = 0; i < prefKeys.length; i++) {
// this is another function expects to find key given as parameter
_drawerItem(prefKeys.elementAt(i).toString());
// expected output should come below
}
}
}
Run Code Online (Sandbox Code Playgroud)
预期输出:Key0 => Value0
我担心没有这样的API(公开)暴露来通过shared_preferences插件一次获取所有首选项。
你需要自己做。这对我有用:
class MainPage extends StatelessWidget {
Future<List<Widget>> getAllPrefs() async {
final SharedPreferences prefs = await PrefStore().prefs;
return prefs
.getKeys()
.map<Widget>((key) => ListTile(
title: Text(key),
subtitle: Text(prefs.get(key).toString()),
))
.toList(growable: false);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder<List<Widget>>(
future: getAllPrefs(),
builder: (context, snapshot) {
if (!snapshot.hasData) return Container();
return ListView(
children: snapshot.data,
);
}),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4876 次 |
| 最近记录: |