2012-10-23 30 views

回答

0

您無法將所有班級作爲參數傳遞給parcel.write()。您只需傳遞在構造函數中收到的參數copy。你還需要確保所有被操作的對象都是或實現了「可裁剪」。

我相信你需要改變follwing:

在構造函數中

ArrayList<Song> copy; 

public PlayList(ArrayList<Song> copy){ 
    super(copy); 
    this.copy = copy; 
} 

在寫()

public void writeToParcel(Parcel parcel, int flags) { 
    parcel.writeTypedList(copy); 
    parcel.writeInt(actualSong); 
    parcel.writeInt(shuffling ? 1 : 0); 
    parcel.writeInt(repeating ? 1 : 0); 
} 

在讀()

public PlayList(Parcel serialized) { 
    super(serialized.readTypedList(copy, Song.WptType.CREATOR)); 
    actualSong = serialized.readInt(); 
    shuffling = serialized.readInt() == 1 ? true : false; 
    repeating = serialized.readInt() == 1 ? true : false; 
} 

注意

您還需要在Song類這個工作落實Parcelable,但它會在代碼庫已經完成。

相關問題