Я пытаюсь отправить объект между двумя действиями. Объект заказа содержит список элемента ведьмой я реализовал так:ClassNotFoundException, когда unmarshalling list of parcelable
OrderItem Object:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeParcelable(priceTableItem, flags);
dest.writeInt(qunatity);
dest.writeDouble(value); // quantity * unitValue
dest.writeDouble(discount);
}
protected OrderItem(Parcel in) {
id = in.readInt();
priceTableItem = in.readParcelable(PriceTableItem.class.getClassLoader());
quantity = in.readInt();
value = in.readDouble();
discount = in.readDouble();
}
В PriceTableItem У меня есть ситуации, где он может contais идентификатор продукта или «класса» идентификатор («класс», когда продукт имеют цвет и размер), но никогда не имеют двух значений.
так я реализовал так:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeParcelable(priceTable, flags);
dest.writeValue(produto);
dest.writeValue(grade);
dest.writeDouble(unitPrice);
dest.writeByte((byte) (isActive ? 1 : 0));
}
protected PriceTableItem(Parcel in) {
id = in.readInt();
priceTable = in.readParcelable(PriceTable.class.getClassLoader());
product = (Product) in.readValue(Product.class.getClassLoader());
grade = (Grade) in.readValue(Grade.class.getClassLoader());
unitPrice = in.readDouble();
isactive = in.readByte() != 0;
}
Проблема происходит, когда я прохожу объект заказа от моего OrderListActivity к OrderDetailActivity. Он читает все атрибуты перед моим списком элементов. Когда пытаться прочитать PriceTable на OrderItem я получаю:
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.intelecto.intesigmobile/br.com.intelecto.intesigmobile.activity.PedidoDetailActivity}: android.os.BadParcelableException: ClassNotFoundException when unmarshalling:
Проблема заключается в следующем:
priceTableItem = in.readParcelable(PriceTableItem.class.getClassLoader());
Любые идеи о том, как решить эту проблему?