Following is my class:
public class Line implements Parcelable {
private Point start, end;
public Line() {
// TODO Auto-generated constructor stub
}
public Line(Point start, Point end) {
this.end = end;
this.start = start;
}
public Point getStart() {
return start;
}
public void setStart(Point start) {
this.start = start;
}
public Point getEnd() {
return end;
}
public void setEnd(Point end) {
this.end = end;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
}
}
it contains two Point(android.graphics.Point) objects and i would like to implement parcelable in it, so that I can restore ArrayList of Line objects in Activity.
The problem as both my attributes are of type Point not sure how to write it in writeToParcel and read it in
public Line(Parcel in) {
super();
}
EDIT
following the answer I implemented the Line class. But in activity the problem is onRestoreInstanceState is never getting called.
When I press home button, and get back to the app all the data in my arrayLists is lost.
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putInt("player", player);
savedInstanceState.putParcelableArrayList("lines", lines);
savedInstanceState.putParcelableArrayList("rects1", rects1);
savedInstanceState.putParcelableArrayList("rects2", rects2);
// etc.
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
player = savedInstanceState.getInt("player");
lines = savedInstanceState.getParcelableArrayList("lines");
rects1 = savedInstanceState.getParcelableArrayList("rects1");
rects2 = savedInstanceState.getParcelableArrayList("rects2");
}