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


  • 相关阅读:
    Eclipse版本
    关于软件版本的说明
    JDK
    java2的三个版本
    vue 自定义下拉选择table组件
    网络图片转base64
    关于重力加速计文章
    整理 node-sass 安装失败的原因及解决办法
    kurentoClient
    es2020
  • 原文地址:https://www.cnblogs.com/wzh206/p/1725096.html
Copyright © 2011-2022 走看看