У меня есть Generic Map of Strings (Key, Value), и это поле является частью Bean, который мне нужно парселировать. Поэтому я могу использовать метод Parcel#writeMap. В API Doc говорится:
Пожалуйста, используйте writeBundle(Bundle) вместо этого. Сплющивает карту в посылку при текущем dataPosition(), при необходимости увеличивая dataCapacity(). Ключи карты должны быть объектами String. Значения карты записываются с помощью writeValue(Object) и должны соответствовать спецификации. Настоятельно настоятельно рекомендуется использовать writeBundle(Bundle) вместо этого поскольку класс Bundle предоставляет безопасный для типов API, позволяющий избежать загадочных ошибок типа в точке маршаллинга.
Итак, я могу перебрать все записи в моей карте и поместить их в 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);