android - Storing ArrayList in onSavedInstanceState -
i'm running asynctask in fragment class , populating listview
result. run asynctask first time fragment instantiated.
how store the arraylist
of objects created in asynctask in onsavedinstance
can retrieve them later?
i tried using putparcelablearraylist
still nullpointerexception
when try retrieve it.
thanks help
stops:
public class stops implements parcelable{ private string station_name; private arraylist<stops> stoptitles; public stops() { } public stops(parcel source) { station_name = source.readstring(); source.readtypedlist(stoptitles, stops.creator); } public string getstation_name() { return station_name; } public void setstation_name(string station_name) { this.station_name = station_name; } public void setstoptitles(arraylist<stops> stoptitles) { this.stoptitles = stoptitles; } public arraylist<stops> getstoptitles() { return stoptitles; } @override public string tostring() { return station_name; } @override public int describecontents() { // todo auto-generated method stub return 0; } @override public void writetoparcel(parcel dest, int arg1) { // todo auto-generated method stub dest.writestring(station_name); dest.writelist(stoptitles); } public static final parcelable.creator<stops> creator = new parcelable.creator<stops>() { @override public stops createfromparcel(parcel in) { return new stops(in); } @override public stops[] newarray(int size) { return new stops[size]; } };
}
have made parcelable implementation of object holding in arraylist? if object not parcelable cannot pass list onsavedinstance
example code:
public class parcelableobject implements parcelable { string field; @override public int describecontents() { return 0; } @override public void writetoparcel(parcel dest, int flags) { dest.writevalue(field); } public static final parcelable.creator<parcelableobject> creator = new parcelable.creator<parcelableobject>() { public parcelableobject createfromparcel(parcel in) { parcelableobject obj = new parcelableobject(); obj.readfromparcel(in) return obj; } public parcelableobject[] newarray(int size) { return new parcelableobject[size]; } }; private void readfromparcel(parcel in) { field = in.readstring() } }
Comments
Post a Comment