Bundle Object

有两种方法传递Object给Bundle


Method 1

Java:

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; }
}




Method 2

Java:

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 ( ) { }
}


转载于:https://www.cnblogs.com/wzh206/archive/2010/04/30/1725096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值