android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

Posted 陈炳序的Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口相关的知识,希望对你有一定的参考价值。

Parcelable,内存单位,跨进程使用,或者intent传递对象的时候使用。
android中用Intent传数据,如果用传递的是一个对象,就将对象实现Parcelable接口,而不是将对象序列化。
/**
 * 预登记 出席领导回传给预登记页面 Javabean
 * Created by COCO on 2017/3/4.
 */

public class GovernmentTakeLeaderInfo implements Parcelable{//Parcelable,内存单位,跨进程使用,或者intent传递对象的时候使用
    private String name;
    private String leaderId;

    //默认构造函数 要加上
    public GovernmentTakeLeaderInfo(){};

    protected GovernmentTakeLeaderInfo(Parcel in) {
        name = in.readString();
        leaderId = in.readString();
    }

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

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

    public String getName() {
        return name;
    }

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

    public String getLeaderId() {
        return leaderId;
    }

    public void setLeaderId(String leaderId) {
        this.leaderId = leaderId;
    }

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

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

以上是要用intent传递的数据。

在用Intent传递的时候要调用ParcelableArrayListExtra相关方法。例如在回传数据的时候:

Intent intent = getIntent();
intent.putParcelableArrayListExtra("data_return", data);//跨进程使用,或者intent传递对象的时候使用
setResult(RESULT_OK, intent);

在接收数据的时候:

 

以上是关于android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口的主要内容,如果未能解决你的问题,请参考以下文章

android Intent传递数据时,哪些类型的数据可以被传递。

Android跨进程传大图思考及实现——附上原理分析

Android intent传输数据intent通过bundle传输数据

用Intent给Service传数据

Intent传参数

android两个activity之间传值