Serializable、Parcelable方式传送数据

一、Serializable

实体类的实现:

public class Student1 implements Serializable {
    private int id;
    private String name;

    public Student1() {
    }

    public Student1(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

发送、接收数据:

//        1.发送数据
        Student1 student1 = new Student1();
        Intent intent1 = new Intent(MainActivity.this, SecondActivity.class);
        intent1.putExtra("student1", student1);
        startActivity(intent1);

//        2.接收数据
        Intent intent1 = getIntent();
        Student1 student1 = (Student1) intent1.getSerializableExtra("student1");

二、Parcelable

实体类的实现:

public class Student2 implements Parcelable {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Student2(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public Student2() {
    }

    protected Student2(Parcel in) {
        id = in.readInt();
        name = in.readString();
    }

    public static final Creator<Student2> CREATOR = new Creator<Student2>() {
        @Override
        public Student2 createFromParcel(Parcel in) {
            return new Student2(in);
        }

        @Override
        public Student2[] newArray(int size) {
            return new Student2[size];
        }
    };

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

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(id);
        dest.writeString(name);
    }
}

发送、接收数据:

//        1.发送数据
        Student2 student2 = new Student2();
        Intent intent2 = new Intent(MainActivity.this, SecondActivity.class);
        intent2.putExtra("student2", student2);
        startActivity(intent2);

//        2.接收数据
        Intent intent2 = getIntent();
        Student2 student2 = intent2.getParcelableExtra("student2");

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-29 20:12
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务