我的类实现是可打包的。有两个碎片。在main activity(oncreate)中,我有代码:

ArrayList<MyClass> data = new ArrayList<MyClass>();
............
Bundle extras1 = new Bundle();
extras1.putParcelableArrayList("arraylist", data);
Tab1Fragment fg = new Tab1Fragment();
fg.setArguments(extras1);

在片段(oncreateview)中:
Bundle extras = getArguments();
ListView list = (ListView) content.findViewById(R.id.lvMain);
if (extras != null) {
    data = extras.getParcelableArrayList("arraylist");
    list.setAdapter(new MyAdapter(getActivity(), data));
}

但临时演员总是无效。为什么?:)

最佳答案

你提供的代码看起来不错。我怀疑问题出在你如何实现我的类上。
Parcelable的典型实现如下(取自Google)

public class MyParcelable implements Parcelable {
 private int mData;

 public int describeContents() {
     return 0;
 }

 public void writeToParcel(Parcel out, int flags) {
     out.writeInt(mData);
 }

 public static final Parcelable.Creator<MyParcelable> CREATOR
         = new Parcelable.Creator<MyParcelable>() {
     public MyParcelable createFromParcel(Parcel in) {
         return new MyParcelable(in);
     }

     public MyParcelable[] newArray(int size) {
         return new MyParcelable[size];
     }
 };

 private MyParcelable(Parcel in) {
     mData = in.readInt();
 }

09-12 06:38