Intent之间传递object的两种方法

    技术2022-05-13  26

     

    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

     


    最新回复(0)