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];
}
};
}
}