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