I\'ve been working with lots of Fragments
recently and have been using two distinct methods of passing in objects to the Fragments, but the only difference that
for Collection such as List :
I wanted to share my experience.
you need to implement Parcelable
Just use the putParcelableArrayList method.
ArrayList<LClass> localities = new ArrayList<LClass>;
...
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(KEY_LClass_LIST, localities);
fragmentInstance.setArguments(bundle);
return fragmentInstance;
And retrieve it using...
localities = savedInstanceState.getParcelableArrayList(KEY_LCLass_LIST);
So, unless you need the custom ArrayList for some other reason, you can avoid doing any of that extra work and only implement Parcelable for your Locality class.
There are 3 ways to pass objects to a fragment
They are:
setArguments
with Serializable
objects is the slowest way (but okay for small objects, I think) and you have automatic state restoration.Parcelable
is a fast way (prefer it over 2nd one if you have collection of elements to pass), and you have automatic state restoration.http://developer.android.com/reference/android/os/Parcelable.html