i have interface ia , class b , c implement them. both b , c implement parcelable
well.
then have tricky part:
class d has arraylist< ia >
. need insert both classes b , c in arraylist
. share same structure "is-a" relation don't apply.
i need pass d 1 activity parcel.
i've tried write (arraylist<ia>) in.readserializable
got ioexception
. know if ia not interface problem easy, can't seem find easy solution this.
any ideas?
@suppresswarnings("unchecked") public d (parcel in) { list = new arraylist<ia>(); (...) list = (arraylist<ia>) in.readserializable } @suppresswarnings("rawtypes") public static final parcelable.creator creator = new parcelable.creator() { public d createfromparcel(parcel in) { return new d(in); } public d[] newarray(int size) { return new d[size]; } }; public int describecontents() { return 0; } public void writetoparcel(parcel dest, int flags) { (...) dest.writelist(list); }
@suppresswarnings("unchecked") public d (parcel in) { list = new arraylist<ia>(); (...) //error -> list = (arraylist<ia>) in.readserializable list = in.readarraylist(ia.class.getclassloader()); } @suppresswarnings("rawtypes") public static final parcelable.creator creator = new parcelable.creator() { public d createfromparcel(parcel in) { return new d(in); } public d[] newarray(int size) { return new d[size]; } }; public int describecontents() { return 0; } public void writetoparcel(parcel dest, int flags) { (...) dest.writelist(list); }
Comments
Post a Comment