android - 无法将新值附加到列表使用共享偏好。新值将是 String 类型
问题描述
问题:
无法将新值附加到List<String>
使用共享首选项。新值将是 type String
。
这是我的定义和方法:
List<dynamic> deliveryAddressConfirmed = new List(5);
SharedPreferences prefs;
:
: //does something here...& on a specific condition call for gotNewNiceAddress(xxxx);
:
gotNewNiceAddress(dynamic capturedNewAddress) async {
print(capturedNewAddress);
final SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString("deliveryAddressConfirmed", capturedNewAddress);
var x = deliveryAddressConfirmed.length;
print("New length = $x");
setState(() {
deliveryAddressConfirmed =
prefs.getStringList('deliveryAddressConfirmed');
});
}
控制台输出:
D/ViewRootImpl(17086): ViewPostImeInputStage ACTION_DOWN
I/flutter (17086): Mountain valley, north 16th street, JC -20293
I/flutter (17086):
I/flutter (17086):
I/flutter (17086): New length = 0
不确定我在上面的代码中是否做错了什么。有人可以帮忙吗?
解决方案
我不知道您要实现什么目标,但要在列表中添加一些内容,然后您可以执行以下操作
deliveryAddressConfirmed.add(prefs.getStringList('deliveryAddressConfirmed'));
此外,您在添加内容之前打印列表,因此它总是会打印 0。尝试在 setState 之后调用 print 语句。
推荐阅读
- python - 将 DataFrame.from_records 添加到现有的 df
- while-loop - 如何通过在函数中使用 while 循环返回包含异常的数组的总和?
- python - 我无法显示标题、公司、位置、日期。我试过 end='',但它不起作用
- java - Fat Jar 导出:找不到“logging/bin/default”的类路径条目
- javascript - 如何从轮播中的图像以表单形式提交信息
- reactjs - 如何在reactjs的输入字段内添加测量单位
- javascript - 动态参数的 URL 正则表达式匹配
- paypal - PayPal Payflow Pro 结果 117:商家规则检查失败
- java - java.lang.IllegalArgumentException:找不到要标记的轴。在 TensorFlow lite 模型中,要标记的有效轴的大小应大于 1
- python - 此代码是否可以识别 MNIST 集?(K-NN 方法)