how to properly implement Parcelable with an ArrayList<Parcelable>?
You almost got it !
You just need to do :
public void writeToParcel(Parcel out, int flags) {
out.writeString(_mac);
out.writeString(_pan);
out.writeInt(_band);
out.writeSerializable(_lqis);
out.writeTypedList(_devices);
}
private ZigBeeNetwork(Parcel in) {
_mac = in.readString();
_pan = in.readString();
_band = in.readInt();
_lqis = (ArrayList<Integer>) in.readSerializable();
in.readTypedList(_devices, ZigBeeDev.CREATOR);
}
That's all!
For your list of Integer, you can also do :
out.writeList(_lqis);
_lqis = new ArrayList<>();
in.readList(_lqis Integer.class.getClassLoader());
It should work.
In my case in.readTypedList(_devices, ZigBeeDev.CREATOR);
gave me a NullPointerException
on _devices
. So I used this:
_devices = in.createTypedArrayList(ZigBeeDev.CREATOR);
You should use writeList(List l) for your list of integers and writeTypedList(List val) for the list of ZigBeeDevices