flutter - Flutter:使用 SharedPreferences 将项目 ID 保存到字符串列表
问题描述
我想使用 SharedPreferences 将项目的 Id 存储到 favId(字符串列表)中。我创建了这样的 saveData 和 getData 方法:
static List<String> favId = [];
void saveData() async {
SharedPreferences pref = await SharedPreferences.getInstance();
pref.setStringList("id", favId);
}
getList() async {
SharedPreferences pref = await SharedPreferences.getInstance();
return pref.getStringList("id");
}
但是,即使在收藏按钮中调用 saveData() 后,该项目的 Id 也没有保存到 favId 中。
这个 SharedPreferences 将在用户单击收藏图标后调用,因此项目的 Id 将添加到 favId 中。如何使用 SharedPreferences 实现它?这是我最喜欢的图标的 IconButton :
IconButton(
icon: Icon(
doa.fav ? Icons.favorite : Icons.favorite_border,
color: doa.fav ? Colors.red : Colors.grey,
),
onPressed: () => setState(() {
doa.fav = !doa.fav;
if (favId.contains(doa.id)) {
favId.removeWhere(
(element) => element == doa.id.toString());
} else {
favId.add(doa.id.toString());
saveData();
}
}),
),
解决方案
推荐阅读
- .net - x509certificate2 在 .net core 2.1 中为 jwt 签名
- python - python中并行解决多个独立LP并出现关键错误
- mongodb - 计数和范围 MongoDB
- functional-programming - 方案轮换函数
- python - 这个匀称的错误信息有什么问题
- javascript - 如何从主题标签转换的字符串中删除起始逗号 - ES6
- python - TypeError:request() 得到了一个意外的关键字参数“build_headers”
- r - 如何选择向量中的相邻元素并将它们放入R中的列表或矩阵中
- python - 如何使用 IPC 从 Process 更新 GUI
- python - PowerPC ppc64le 上的 TensorFlow 安装失败