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");