Intent之间传递object的两种方法:被传递的对象的类实现Parcelable接口,或者实现Serialiable接口。
http://www.anddev.org/putting_an_object_into_a_bundle-t6431.html
http://blog.csdn.net/Android_Tutor/archive/2010/07/16/5740845.aspx
Method 1
-
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.200 seconds, using
GeSHi 1.0.8.4