アンドロイドでonCreateではなく、onclick内でスピナーをアダプターにセットしているのですが、
画面回転した際に、onclickで作ったスピナーの内容が消えてしまいます。
のでonSaveInstanceStateでスピナーごと保存し、 onRestoreInstanceState内で取り出したスピナーのデータをそのままアダプターにセットしたいのですが、
Android Parcelable を使ってクラスのメンバを一時保存
を参考にして自作のスピナーを一時保存して取り出そうとしたのですが初心者の為、何がいけないのか上手くいきません。どなたか添削のほどお願いします。
その他必要なもの等あればコメントにてお願いします。

AllContactParcelable.java

public class AllContactParcelable implements Parcelable, SpinnerAdapter {

private ArrayList < MainActivity.RowData[] > contactList;

public int describeContents() {
 return 0;
}

public void writeToParcel(Parcel out, int flags) {
 //out.writeTypedList(contactList);
}

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

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

private AllContactParcelable(Parcel in ) {
 //contactList = (ArrayList<MainActivity.RowData[]>) (ArrayList<MainActivity.RowData[]>) in.createTypedArrayList(MainActivity.RowData.CREATOR);
}

public AllContactParcelable(ArrayAdapter < MainActivity.RowData > contactList) {
 //this.contactList = contactList;
}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
 return null;
}

@Override
public void registerDataSetObserver(DataSetObserver observer) {}

@Override
public void unregisterDataSetObserver(DataSetObserver observer) {}

@Override
public int getCount() {
 return 0;
}

@Override
public Object getItem(int position) {
 return null;
}

@Override
public long getItemId(int position) {
 return 0;
}

@Override
public boolean hasStableIds() {
 return false;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
 return null;
}

@Override
public int getItemViewType(int position) {
 return 0;
}

@Override
public int getViewTypeCount() {
 return 0;
}

@Override
public boolean isEmpty() {
 return false;
}

MainActiviy.java 一部抜粋

public class MainActivity extends Activity
implements OnClickListener {
 AllContactParcelable AllContactParcelable;

 public static class RowData implements Parcelable {
  private String name;
  private String code;

  public int describeContents() {
   return 0;
  }

  public void writeToParcel(Parcel out, int flags) {
   out.writeString(name);
   out.writeString(code);
  }

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

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

  private RowData(Parcel in ) {
    name = in .readString();
    code = in .readString();
   }
   // コンストラクタ・セッタ・ゲッタ省略
  RowData(String name, String code) {
   this.TOKCO = name;
   this.TOKNA = code;
  }

  public String getname() {
   return name;
  }

  public String getcode() {
   return code;
  }

  @Override
  public String toString() {
    return TOKNA;
  }

:
:
:
:
:
: (onclick内でのドロップダウン作成処理)

  db = helper.getReadableDatabase();
  // 列名の定義
  String[] columns = {
   "NAME",
   "CODE",
   "NAK"
  };
  // 得意先データの取得
  Cursor cursor = db.query(DB_TABLE, columns, null, null, null, null, "CODE");
  final RowData[] dataArray = new RowData[cursor.getCount()];
  // 取得したデータをテーブル明細部に設定
  for (int i = 0; cursor.moveToNext(); i++) {
   dataArray[i] = new RowData(cursor3.getString(0), cursor3.getString(0) + "\n" + cursor3.getString(1));
  }
  ArrayAdapter < RowData > adapter = new ArrayAdapter < > (this, R.layout.list, dataArray);
  Spinner spinner = (Spinner) findViewById(R.id.n_naiyo);
  spinner3.setAdapter(adapter);
  AllContactParcelable = new AllContactParcelable(adapter);

  @Override
  protected void onSaveInstanceState(Bundle outState) {
   super.onSaveInstanceState(outState);
   outState.putParcelable("contact", AllContactParcelable);
  }

  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState) {
   super.onRestoreInstanceState(savedInstanceState);
   AllContactParcelable = savedInstanceState.getParcelable("contact");
   Spinner spinner = (Spinner) findViewById(R.id.n_naiyo);
   spinner.setAdapter(AllContactParcelable);
  }
 }
}