私はいくつかのトピックを検索しましたが、私の問題の解決策は見つかりませんでした。私のMainActivityでArrayList <?を渡します。 Parcelable> to Activityを実装しました
public class Series implements Parcelable {
private String name;
private int numOfSeason;
private int numOfEpisode;
/** Constructors and Getters/Setters have been removed to make reading easier **/
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]);
}
@Override
public int describeContents() {
return 0;
}
@Override
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() {
@Override
public Series createFromParcel(Parcel in) {
return new Series(in);
}
@Override
public Series[] newArray(int size) {
return new Series[size];
}
};
}
私は、ArrayListのを持っています。リストを動的に編集可能にするには、編集可能な別のアクティビティに渡す必要があります。
ArrayList<Series> listOfSeries = new ArrayList<Series>();
public void openAddActivity() {
Intent intent = new Intent(this, AddActivity.class);
intent.putParcelableArrayListExtra(
"com.example.episodetracker.listofseries",
(ArrayList<? extends Parcelable>) listOfSeries);
startActivity(intent);
}
リストをキャストする必要があります。それ以外の場合は、Eclipseから次のエラーメッセージが表示されます。 方法putParcelableArrayListExtra型テント内(文字列、ArrayListには)引数には適用されません(文字列、リスト)
が、これはそれを行うための正しい方法ですか?
ArrayList<Series> list = savedInstanceState
.getParcelableArrayList("com.example.episodetracker.listofseries");
これは別のアクティビティでデータを読み取ろうとする方法です。
これは上記の行にクラッシュしています。つまり、getParcelableArrayList部分です。
1 /などの型と一致しなければならないことだった私は仕事しないのか理解していないのに役立ちますあなたのコードで。 2 /リストをどこかに保存しないでください?したがって、あなたはアクティビティからアクティビティに渡す配列ではなく、データベースで作業するのが最善ではないでしょうか? – njzk2
Parcelablesは話す悪魔です...代わりにSerializableを作ろうとしましたか? – snowCrabs
シリアライズがずっと遅いので、私はパーセルブルが行く方法であるという印象を受けましたか? –