zoukankan      html  css  js  c++  java
  • 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() {}
    }


  • 相关阅读:
    android之自定义ViewGroup和自动换行的布局的实现
    早上开发有感:事情原本可以变的简单
    android中textview显示汉字,字母,数字乱行行问题解决
    MeasureSpec介绍及使用详解
    android中status bar 小结
    Android推送方式比较(转)
    error: Entry 'xxxxxx' not uptodate. Cannot merge.
    android2.3:加载你的SD卡与can't mount /dev/block/mmcblk0
    有客户自远方来,不亦乐乎?唉,怎一个愁字了得
    卸载Norton 8企业版的一次经历
  • 原文地址:https://www.cnblogs.com/wzh206/p/1725096.html
Copyright © 2011-2022 走看看