首页 > 代码库 > android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

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接口