将ArrayList extends Parcelable>传递到Activity中
将ArrayList extends Parcelable>传递到Activity中
我已经搜索了一些主题,但没有找到解决我的问题的方法。
public class Series implements Parcelable {
private String name;
private int numOfSeason;
private int numOfEpisode;
public Series(Parcel in) {
String[] data = new String[3];
in.readStringArray(data);
this.name = data[0];
this.numOfSeason = Integer.parseInt(data[1]);
this.numOfEpisode = Integer.parseInt(data[2]);
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringArray(new String[] { this.name,
String.valueOf(this.numOfSeason),
String.valueOf(this.numOfEpisode) });
}
private void readFromParcel(Parcel in) {
name = in.readString();
numOfSeason = in.readInt();
numOfEpisode = in.readInt();
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Series createFromParcel(Parcel in) {
return new Series(in);
}
public Series[] newArray(int size) {
return new Series[size];
}
};
}
在我的MainActivity中,我有一个ArrayList。为了使列表能够动态编辑,我需要将其传递到另一个可以编辑它的活动中。
ArrayList
public void openAddActivity() {
Intent intent = new Intent(this, AddActivity.class);
intent.putParcelableArrayListExtra(
"com.example.episodetracker.listofseries",
(ArrayList extends Parcelable>) listOfSeries);
startActivity(intent);
}
我需要进行类型转换,否则Eclipse会给我以下错误信息。
Intent中的putParcelableArrayListExtra(String, ArrayList)方法对于参数(String, List)不适用
这是正确的做法吗?
ArrayList
.getParcelableArrayList("com.example.episodetracker.listofseries");
这是我尝试在另一个活动中读取数据的方式。
它会在上述代码的行上崩溃,也就是getParcelableArrayList部分。