Ich habe ein paar Themen durchsucht, aber keine Lösung für mein Problem gefunden.Pass ArrayList <? implementiert Parcelable> zu Aktivität
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];
}
};
}
In meinem MainActivity habe ich eine Arraylist. Um die Liste dynamisch editierbar zu machen, muss sie an eine andere Aktivität übergeben werden, wo ich sie bearbeiten kann.
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);
}
Ich muss die Liste umwandeln, sonst Eclipse gibt mir die folgende Fehlermeldung. Verfahren putParcelableArrayListExtra (String, Arraylist) in der Art Intent ist für die Argumente (String, List) nicht anwendbar
Ist dies der richtige Weg, es zu tun?
ArrayList<Series> list = savedInstanceState
.getParcelableArrayList("com.example.episodetracker.listofseries");
So versuche ich, die Daten in einer anderen Aktivität zu lesen.
Es stürzt auf der Linie oben ab. nämlich der getParcelableArrayList Teil.
1/Ich verstehe nicht, was nicht funktioniert in deinem Code. 2/Speichern Sie die Listen nicht irgendwo? Wäre es daher nicht besser, an der Datenbank zu arbeiten als an einem Array, das Sie von Aktivität zu Aktivität weitergeben? – njzk2
Parcelables sind der Teufel sozusagen ... hast du versucht, es Serializable stattdessen machen? – snowCrabs
Ich hatte den Eindruck, dass Parcelable der Weg ist, da Serializable viel langsamer ist? –