自定义一个SparseParcelableArray类,继承SparseArray类,实现Parcelable接口,用来替代原生的SparseArray类:
import android.os.Parcel; import android.os.Parcelable; import android.util.SparseArray; /** * * @param <E> */ public class SparseParcelableArray<E> extends SparseArray<E> implements Parcelable { public SparseParcelableArray() { super(); } public SparseParcelableArray(Parcel in) { } public static final Creator<SparseParcelableArray> CREATOR = new Creator<SparseParcelableArray>() { @Override public SparseParcelableArray createFromParcel(Parcel in) { return new SparseParcelableArray(in); } @Override public SparseParcelableArray[] newArray(int size) { return new SparseParcelableArray[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { } }
使用示例:
Intent intent = new Intent(); Bundle bundle = new Bundle(); SparseParcelableArray sparseParcelableArray = new SparseParcelableArray(); sparseParcelableArray.put(1, 1); bundle.putSparseParcelableArray("sparseParcelableArray", sparseParcelableArray); intent.putExtras(bundle); ...