как правильно реализовать Parcelable с ArrayList?
у меня возникли проблемы с созданием моего класса Parcelable
. Проблема в том, что я пытаюсь написать в посылку член в классе, который является
4 ответа:
вы почти получили его !
нужно сделать :
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); }
вот и все!
для вашего списка целых чисел, вы также можете сделать:
out.writeList(_lqis); _lqis = new ArrayList<>(); in.readList(_lqis Integer.class.getClassLoader());
Это должно работать.
в моем случае
in.readTypedList(_devices, ZigBeeDev.CREATOR);
ЯNullPointerException
on_devices
. Поэтому я использовал это:_devices = in.createTypedArrayList(ZigBeeDev.CREATOR);
вы должны использовать writeList (List l) для списка целых чисел и writeTypedList (List val) для списка ZigBeeDevices