【发布时间】:2012-01-05 11:32:23
【问题描述】:
我有一个字符串(键、值)的通用映射,这个字段是我需要打包的 Bean 的一部分。 所以,我可以使用 Parcel#writeMap 方法。 API 文档说:
请改用 writeBundle(Bundle)。将地图展平到地块中 在当前 dataPosition() 处,如果需要,增加 dataCapacity()。这 映射键必须是字符串对象。地图值是使用编写的 writeValue(Object) 并且必须遵循那里的规范。它是 强烈建议使用 writeBundle(Bundle) 而不是这个 方法,因为 Bundle 类提供了一个类型安全的 API,它允许 您可以避免在编组时出现神秘的类型错误。
所以,我可以遍历 Map 中的每个条目,并将其放入 Bundle,但我仍在寻找更智能的方法。我缺少 Android SDK 中的任何方法吗?
目前我是这样做的:
final Bundle bundle = new Bundle();
final Iterator<Entry<String, String>> iter = links.entrySet().iterator();
while(iter.hasNext())
{
final Entry<String, String> entry =iter.next();
bundle.putString(entry.getKey(), entry.getValue());
}
parcel.writeBundle(bundle);
【问题讨论】:
-
我已提议对 api 报价进行修改。现在水平滚动阅读它很不舒服。
-
您找到解决此问题的方法了吗?如果是这样,请在此处发布您的解决方案或选择最佳答案。
标签: android bundle parcelable