将ArrayList传递到Activity中

12 浏览
0 Comments

将ArrayList传递到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 listOfSeries = new ArrayList();

public void openAddActivity() {

Intent intent = new Intent(this, AddActivity.class);

intent.putParcelableArrayListExtra(

"com.example.episodetracker.listofseries",

(ArrayList) listOfSeries);

startActivity(intent);

}

我需要进行类型转换,否则Eclipse会给我以下错误信息。

Intent中的putParcelableArrayListExtra(String, ArrayList)方法对于参数(String, List)不适用

这是正确的做法吗?

ArrayList list = savedInstanceState

.getParcelableArrayList("com.example.episodetracker.listofseries");

这是我尝试在另一个活动中读取数据的方式。

它会在上述代码的行上崩溃,也就是getParcelableArrayList部分。

0