Intereting Posts
Обновлять ОС Android программно Пользовательский ImageView с тенью Не удается открыть каталог данных на корневом телефоне Android Поддерживает ли android * native * поддерживает SVG-изображение в качестве доступных ресурсов (значков)? Как повлиять на строку в Android Textview Как давать уведомления о android в определенное время? Сохранение данных при закрытии приложения и извлечение этих данных Android-виджет отличается ориентацией на портрет и пейзаж В какой операционной системе работает Eclipse? Как использовать намерение Action_view для публикации на стене facebook? Android Fatal signal 11 (SIGSEGV) при 0x00000040 (код = 1) Ошибка Включение виртуализации Intel (VT-X) без опции в BIOS Ошибка PhoneGap – «Неподготовлено ReferenceError: cordova не определено» Тайм-аут запуска истек, отказавшись от блокировки слежения! Тайм-аут активности для HistoryRecord. О чем это беспокоиться? Как решить проблему «com.google.android.gms.auth.api.signin.internal.SignInHubActivity» ActivityNotFoundException в интеграции google signin

Как передать разреженный объект, содержащий список объектов?

Я создал объект Parcelable ниже, мой объект содержит List продуктов. В моем конструкторе, как мне обрабатывать воссоздание моего Parcelable для List ?

Я проверил все методы, доступные из пакета, и все, что доступно, – readArrayList(ClassLoader) . Я не уверен, что это лучший подход, и ваш совет будет действительно оценен.

 public class Outfits implements Parcelable { private String url; private String name; private List<Product> products; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Product> getProducts() { return products; } public void setProducts(List<Product> products) { this.products = products; } public void writeToParcel(Parcel dest, int flags) { Log.v("", "writeToParcel..." + flags); dest.writeString(url); dest.writeString(name); dest.writeList(products); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public Outfits createFromParcel(Parcel in) { return new Outfits(in); } public Outfits[] newArray(int size) { return new Outfits[size]; } }; @Override public int describeContents() { return 0; } /*** Here how do I populate my List of Products ***/ private Outfits(Parcel in) { url = in.readString(); name = in.readString(); products = in.read ???????; } } 

Solutions Collecting From Web of "Как передать разреженный объект, содержащий список объектов?"

Если класс Product совместим с разборчивым протоколом, следуйте инструкциям в соответствии с документацией.

 products = new ArrayList<Product>(); in.readList(products,null); 

Во-первых, ваш объект Product должен реализовывать Parcelable .

И затем используйте dest.writeTypedList(products) в writeToParcel() .

Наконец, используйте следующий код для разбора списка:

 products = new ArrayList<Product>(); in.readTypedList(products, Product.CREATOR); 

Для получения дополнительной информации обратитесь к Официальному документу :

Это должно работать:

 in.readTypedList(products, Product.CREATOR); 

Parcelable в классе Product, а затем, а затем

in.readList(this.list, Product.class.getClassLoader());

Если какое-либо из вышеперечисленных решений не работает.