Ich versuche, ein Array von Objekten zu schreiben, die Parcelable in Parcel mit writeParcelableArray implementieren.Schreiben von Arrays von Parcelables zu einem Paket in Android
Die Objekte Ich versuche, definiert zu schreiben (wie man erwarten würde) als:
public class Arrival implements Parcelable {
/* All the right stuff in here... this class compiles and acts fine. */
}
Und ich versuche, sie in ein `Paket zu schreiben‘ mit:
@Override
public void writeToParcel(Parcel dest, int flags) {
Arrival[] a;
/* some stuff to populate "a" */
dest.writeParcelableArray(a, 0);
}
Wenn versucht Eclipse-das ich den Fehler zu kompilieren:
Bound mismatch: The generic method writeParcelableArray(T[], int) of type Parcel is not applicable for the arguments (Arrival[], int). The inferred type Arrival is not a valid substitute for the bounded parameter < T extends Parcelable >
diese Fehlermeldung, die ich nicht ganz verstehen. Parcelable
ist eine Schnittstelle (keine Klasse), daher können Sie sie nicht erweitern. Hat jemand Ideen?
UPDATE: ich im Grunde das gleiche Problem bin, wenn ein ArrayList
von Parcelable
s in eine Intent
setzen:
Intent i = new Intent();
i.putParcelableArrayListExtra("locations", (ArrayList<Location>) locations);
ergibt:
The method putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) in the type Intent is not applicable for the arguments (String, ArrayList< Location >)
Dies kann daran liegen Location
war die Klasse arbeitete ich oben (das wrappt die Arrival
s), aber ich denke nicht.
Wie bereits erwähnt, deklarieren Sie Ihr Array über die Schnittstelle. Freut mich, dass es geklappt hat. – harschware