Intent传递实现Parcelable接口的对象

Intent可以传递基本数据类型,在对象实现了Parcelable接口后,Intent也可以传递对象。

1. 使类ListVideo实现了Parcelable接口。

package com.example.lenovo.computerbase.bean;

import android.os.Parcel;
import android.os.Parcelable;

public class ListVideo implements Parcelable{
    private int l_v_no;
    private String l_v_name;

    public int getL_v_no() {
        return l_v_no;
    }

    public void setL_v_no(int l_v_no) {
        this.l_v_no = l_v_no;
    }

    public String getL_v_name() {
        return l_v_name;
    }

    public void setL_v_name(String l_v_name) {
        this.l_v_name = l_v_name;
    }

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

// 特别注意重写writeToParcel这个方法 @Override
public void writeToParcel(Parcel parcel, int i) { parcel.writeInt(l_v_no); parcel.writeString(l_v_name); } public static final Parcelable.Creator<ListVideo> CREATOR = new Creator<ListVideo>() { @Override public ListVideo createFromParcel(Parcel parcel) { return new ListVideo(parcel); } @Override public ListVideo[] newArray(int i) { return new ListVideo[i]; } }; public ListVideo(Parcel parcel){ l_v_no = parcel.readInt(); l_v_name = parcel.readString(); } public ListVideo(){ } }

2. 在Intent中添加类实例listVideo

ListVideo listVideo = new ListVideo();
listVideo.setL_v_no(1);
listVideo.setL_v_name("第一章");
                
 //启动新的活动
Intent intent = new Intent(this, VideoActivity.class);
intent.putExtra("listVideo", listVideo);
this.startActivity(intent);

3. 在新的Intent中取出listVideo

ListVideo listVideo = getIntent().getParcelableExtra("listVideo");
原文地址:https://www.cnblogs.com/xiaoxiaoyibu/p/8810577.html