O(∩_∩)O哈哈~,今天看别人代码时发现有好东西就顺便弄上来了,其实很简单也很实用,先记录下来。
package com.huangxj.androidall; import android.content.Context; import android.os.Parcel; import android.os.Parcelable; import android.view.View; public class TestMyView extends View { private int mCurrentPage = 0; public TestMyView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected Parcelable onSaveInstanceState() { Parcelable pl = super.onSaveInstanceState(); SaveState st = new SaveState(pl); st.currentPage = mCurrentPage; return st; } @Override protected void onRestoreInstanceState(Parcelable state) { SaveState st = (SaveState) state; super.onRestoreInstanceState(st.getSuperState()); mCurrentPage = st.currentPage; requestLayout(); } protected static class SaveState extends BaseSavedState{ int currentPage = 0; public SaveState(Parcelable pl) { super(pl); } public SaveState(Parcel in) { super(in); currentPage = in.readInt(); } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeInt(currentPage); } @SuppressWarnings("UnusedDeclaration") public static final Parcelable.Creator<SaveState> CREATOR = new Parcelable.Creator<SaveState>() { @Override public SaveState createFromParcel(Parcel in) { return new SaveState(in); } @Override public SaveState[] newArray(int size) { return new SaveState[size]; } }; } }