zoukankan      html  css  js  c++  java
  • Serializable Parcelable

    Android中Intent中如何传递对象,一种是 Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口

    1.Serializable

    对象类:

    public class User implements Serializable{

        public User(int age, String name) {
            this.age = age;
            this.name = name;
        }

        public int age;
        public String name;
    }

    传递类:

    Bundle bundle = new Bundle();

    bundle.putSerializable("user", new User(26, "xiaohong"));

    Intent intent = new Intent(this, DemoActicity.class);

    intent.putExtras(bundle);

    startActivity(intent);

    接受类:

    User user = (User)getIntent().getExtras().getSerializable("user");

    Parcelable

    对象类:

    public class Student implements Parcelable{

        public int number;
        public String name;

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel parcel, int i) {
            parcel.writeInt(number);
            parcel.writeString(name);
        }

        /**
         * 1.此处必须加上 public static final
         * 2.此处变量名字必须为  CREATOR
         */
        public static final Parcelable.Creator<Student> CREATOR = new Parcelable.Creator<Student>() {
            @Override
            public Student createFromParcel(Parcel parcel) {
                Student student = new Student();
                student.number = parcel.readInt();
                student.name = parcel.readString();
                return student;
            }

            @Override
            public Student[] newArray(int i) {
                return null;
            }
        };
    }

    传递类:

    Student student = new Student();

    student.number = 1;

    student.name = "xiaohong";

    Bundle bundle = new Bundle();

    bundle.putParcelable("student", student);

    Intent intent = new Intent(this, DemoActicity.class);

    intent.putExtras(bundle);

    startActivity(intent);

    接受类:

    User user = (User)getIntent().getExtras().getParcelable("user");

  • 相关阅读:
    BZOJ4569 : [Scoi2016]萌萌哒
    2016浙江省赛过山车记
    BZOJ4546(原) : 三元组
    BZOJ4539 : [Hnoi2016]树
    BZOJ4537 : [Hnoi2016]最小公倍数
    BZOJ4538 : [Hnoi2016]网络
    BZOJ4527 : K-D-Sequence
    BZOJ4504 : K个串
    BZOJ4471 : 随机数生成器Ⅱ
    BZOJ3659 : Which Dreamed It
  • 原文地址:https://www.cnblogs.com/lianghui66/p/2944589.html
Copyright © 2011-2022 走看看