Я хочу передать пользовательский объект, который имеет обнуляемый список других пользовательских объектов. Как мне обойти это. Я использую Kotlin
writeTypedList и createTypedArrayList не работают, когда список пуст
Довольно просто, вам просто нужно прочитать список, только если он не нулевой.
dest.writeByte(list == null ? (byte)0 : (byte)1)
if(list != null) {
dest.writeInt(list.size());
dest.writeTypedList(list);
}
затем
boolean hasList = in.readByte() > 0;
if(hasList) {
int size = in.readInt();
List<MyObj> list = new ArrayList<>(size);
in.readTypedList(list, MyObj.CREATOR);
}
Как отправить список пользовательских объектов, который в свою очередь состоит из пользовательских объектов?
Вам необходимо реализовать Parcelable interface
для каждого настраиваемого объекта в созданной вами ссылке.
dest.writeTypedList(customList) // in write to parcel
а также
this.customList = in.createTypedArrayList(CustomObject.CREATOR) // in the constructor which receives (Parcel in) as parameter
Только помните, не пропускайте ни один объект из реализуемого интерфейса интерфейса в ссылке.