На це питання вже чудово відповіли інші люди, якщо ви хочете зробити це самостійно.
Якщо ви віддаєте перевагу інкапсулювати або приховувати більшу частину коду посилки низького рівня, можете подумати про використання коду, який я написав деякий час тому для спрощення обробки парцелянтів.
Написання на посилку так само просто:
parcelValues(dest, name, maxSpeed, weight, wheels, color, isDriving);
де колір є перерахунком, а isDriving - булевим, наприклад.
Читати з посилки також не набагато складніше:
color = (CarColor)unparcelValue(CarColor.class.getClassLoader());
isDriving = (Boolean)unparcelValue();
Просто погляньте на "ParceldroidExample", який я додав до проекту.
Нарешті, він також тримає ініціалізатор CREATOR коротким:
public static final Parcelable.Creator<Car> CREATOR =
Parceldroid.getCreatorForClass(Car.class);