Как грамотно записать Java.util.Map в parcel?

У меня есть 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);
62
задан Peter O. 12 April 2013 в 15:00
поделиться