Я пытаюсь написать массив объектов, которые реализуют Parcelable в Parcel, используя writeParcelableArray.Написание массивов Parcelables на парцеллу в Android
Объектами Я пытаюсь писать определены (как и следовало ожидать), как:
public class Arrival implements Parcelable {
/* All the right stuff in here... this class compiles and acts fine. */
}
И я пытаюсь записать их в `Parcel» с:
@Override
public void writeToParcel(Parcel dest, int flags) {
Arrival[] a;
/* some stuff to populate "a" */
dest.writeParcelableArray(a, 0);
}
Когда Eclipse, пытается скомпилировать это я получаю сообщение об ошибке:
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 >
Я совершенно не понимаю, это сообщение об ошибке. Parcelable
- это интерфейс (а не класс), поэтому вы не можете его расширять. У кого-нибудь есть идеи?
UPDATE: У меня в основном с той же проблемой, когда положить ArrayList
из Parcelable
с в Intent
:
Intent i = new Intent();
i.putParcelableArrayListExtra("locations", (ArrayList<Location>) locations);
выходы:
The method putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) in the type Intent is not applicable for the arguments (String, ArrayList< Location >)
Это может быть потому, что Location
был класс I работал над этим (это обертывает Arrival
), но я так не думаю.
Как я уже сказал, объявите массив, используя интерфейс. Рад, что вы все разобрались. – harschware