In the blog, we have shown you how to pass the List of CustomObjects to the Activity and fragment.
In this technique, we have used the Serialization for the list passing.
Serialization is the process of converting an object into a stream of bytes in order to store the object or transmit it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed. The reverse process is called deserialization.
How to Implement
Step 1: Implements your model With Serializable interface,
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 public class MyProductModel implements Serializable {@SerializedName("productName")@Exposeprivate String productName;@SerializedName("productSDesc")@Exposeprivate String productSDesc;@SerializedName("price")@Exposeprivate Price price;@SerializedName("imageUrl")@Exposeprivate String imageUrl;public String getProductName() {return productName;}public void setProductName(String productName) {this.productName = productName;}public String getProductSDesc() {return productSDesc;}public void setProductSDesc(String productSDesc) {this.productSDesc = productSDesc;}public Price getPrice() {return price;}public void setPrice(Price price) {this.price = price;}public String getImageUrl() {return imageUrl;}public void setImageUrl(String imageUrl) {this.imageUrl = imageUrl;}}
Step 2:
passing the custom Object in fragment,
- Pass it to the fragment,
1(new HomeTabProductsFragment()).newInstance((Serializable) mainData.getData().getFeaturedProduct(), ""); - Set Arguments,
12345678public static HomeTabProductsFragment newInstance(Serializable param1, String param2) {HomeTabProductsFragment fragment = new HomeTabProductsFragment();Bundle args = new Bundle();args.putSerializable(ARG_PARAM1, param1);args.putString(ARG_PARAM2, param2);fragment.setArguments(args);return fragment;} - Get Arguments,
12345678 @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (getArguments() != null) {mParam1 = (List<HomeProductsModel>) getArguments().getSerializable(ARG_PARAM1);mParam2 = getArguments().getString(ARG_PARAM2);}}
passing the custom Object in activity,
- Pass it to the activity,
123Intent intent = new Intent(getActivity(), Activity.class);intent.putExtra("list", (Serializable) mainData.getData().getFeaturedProduct());getActivity().startActivity(intent); - And get it
1((List<HomeProductsModel>) getIntent().getExtras().getSerializable("list"))
If you have any doubt on this blog, please ask in comments. And stay updated and stay super.