Ich versuche, ein Array von Objekten zu schreiben, die Folgendes implementieren Paketfähig in eine Parzelle mit writeParcelableArray .
Die Objekte, die ich zu schreiben versuche, sind (wie zu erwarten) definiert als:
public class Arrival implements Parcelable {
/* All the right stuff in here... this class compiles and acts fine. */
}
Und ich versuche, sie in ein `Parcel' mit einzubauen:
@Override
public void writeToParcel(Parcel dest, int flags) {
Arrival[] a;
/* some stuff to populate "a" */
dest.writeParcelableArray(a, 0);
}
Wenn Eclipse versucht, dies zu kompilieren, erhalte ich den Fehler:
Gebundene Fehlanpassung: Die generische Methode writeParcelableArray(T[], int) vom Typ Parcel ist nicht anwendbar für die Argumente (Arrival[], int). Die gefolgerte Typ Arrival ist kein gültiger Ersatz für den gebundenen Parameter < T erweitert Parcelable >
Ich verstehe diese Fehlermeldung überhaupt nicht. Parcelable
ist eine Schnittstelle (keine Klasse) und kann daher nicht erweitert werden. Hat jemand eine Idee?
UPDATE : Ich habe grundsätzlich das gleiche Problem, wenn ich eine ArrayList
de Parcelable
s in eine Intent
:
Intent i = new Intent();
i.putParcelableArrayListExtra("locations", (ArrayList<Location>) locations);
erbringt:
Die Methode putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) im Typ Intent ist für die Argumente (String, ArrayList< Location >) nicht anwendbar
Der Grund dafür könnte sein Location
war die Klasse, an der ich oben gearbeitet habe (die die Arrival
s), aber das glaube ich nicht.