我正在嘗試使用writeParcelableArray將一個實現Parcelable的對象數組寫入Parcel。在Android中將包裹數組寫入一個包裹
我想寫的對象定義(如你所期望)爲:
public class Arrival implements Parcelable {
/* All the right stuff in here... this class compiles and acts fine. */
}
我試圖把它們寫爲'包裹」有:
@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:
Intent i = new Intent();
i.putParcelableArrayListExtra("locations", (ArrayList<Location>) locations);
產量:我的推杆Parcelable
秒的ArrayList
時爲Intent
具有基本相同的問題
The method putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) in the type Intent is not applicable for the arguments (String, ArrayList< Location >)
這可能是因爲Location
是我上面正在做的課程(包裝Arrival
s),但我不這麼認爲。
正如我所說,使用接口聲明你的數組。很高興你能解決問題。 – harschware 2009-12-12 22:09:06