There are two methods the first one is the way it should be done.. but is reeeeeeally a pain in the a**
an the second method is easy to use for the developer but more work for the system.
Method 1 aka pain in the a** Method
Using java Syntax Highlighting
package de.padde.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Parcelable;
import android.os.Parcel;
public class Test extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(!savedInstanceState.isEmpty()) {
SaveMe state = savedInstanceState.getParcelable("laststate");
}
}
protected void onPause() {
Bundle b = new Bundle();
b.putParcelable("laststate", new SaveMe());
onSaveInstanceState(b);
}
}
class SaveMe implements Parcelable {
static final int test = 1234;
private int user;
private String name;
private double score;
private SaveMeToo smt;
public void writeToParcel(Parcel out, int flags) {
out.writeInt(user);
out.writeString(name);
out.writeDouble(score);
out.writeParcelable(smt, flags);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public SaveMe createFromParcel(Parcel in) { return new SaveMe(in); }
public SaveMe[] newArray(int size) { return new SaveMe[size]; }
};
private SaveMe(Parcel in) {
user = in.readInt();
name = in.readString();
score = in.readDouble();
smt = in.readParcelable(getClass().getClassLoader());
}
public SaveMe() {}
public int describeContents() { return 0; }
}
class SaveMeToo implements Parcelable {
private int moo;
public void writeToParcel(Parcel out, int flags) {
out.writeInt(moo);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public SaveMeToo createFromParcel(Parcel in) { return new SaveMeToo(in); }
public SaveMeToo[] newArray(int size) { return new SaveMeToo[size]; }
};
private SaveMeToo(Parcel in) {
moo = in.readInt();
}
public int describeContents() { return 0; }
}
Parsed in 0.039 seconds, using
GeSHi 1.0.8.4
Method 2
Using java Syntax Highlighting
package de.padde.test;
import java.io.Serializable;
import android.app.Activity;
import android.os.Bundle;
public class Test extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(!savedInstanceState.isEmpty()) {
SaveMe state = (SaveMe) savedInstanceState.getSerializable("laststate");
}
}
protected void onPause() {
Bundle b = new Bundle();
b.putSerializable("laststate", new SaveMe());
onSaveInstanceState(b);
}
}
class SaveMe implements Serializable {
private static final long serialVersionUID = 1L;
static final int test = 1234;
private int user;
private String name;
private double score;
private SaveMeToo smt;
public SaveMe() {}
}
class SaveMeToo implements Serializable {
private static final long serialVersionUID = 2L;
private int moo;
public SaveMeToo() {}
}
Parsed in 0.034 seconds, using
GeSHi 1.0.8.4
Greets Padde