更新:実際のコードを含む
カスタムアダプターを埋めるためにArrayListを使用していますが、向きの変更などで正常に機能します。
「オンクリエイト」
myArrayList = savedInstanceState.getParcelableArrayList(myListkey);
"onSaveInstanceState"
savedInstanceState.putParcelableArrayList(myListkey, myArrayList);
そして私はそれをうまく取り出すことができます
しかし..複数の変数を渡す必要があり、それが壊れます。最後に挿入されたものだけが取得できるようです。
例1
「オンクリエイト」
myNameString = savedInstanceState.getString(namekey);
myArrayList = savedInstanceState.getParcelableArrayList(myListkey);
"onSaveInstanceState"
savedInstanceState.putString(listkey, myNameString);
savedInstanceState.putParcelableArrayList(myListkey, myArrayList);
ここで「myArrayList」は満たされていますが、「myNameString」はnullです
元。2
「オンクリエイト」
myArrayList = savedInstanceState.getParcelableArrayList(listkey);
myNameString = savedInstanceState.getString(namekey);
"onSaveInstanceState"
savedInstanceState.putParcelableArrayList(listkey, myArrayList);
savedInstanceState.putString(namekey, myNameString);
ここで「myNameString」は入力されていますが、「myArrayList」は null です
元のコード:
@Override
protected void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
_listName = savedInstanceState.getString(getApplicationContext().getResources().getString(R.string.saved_instance_list_name));
_listItems = savedInstanceState.getParcelableArrayList(getApplicationContext().getResources().getString(R.string.saved_instance_list_items_edit));
}
... more code
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString(getApplicationContext().getResources().getString(R.string.saved_instance_list_name), _listName);
savedInstanceState.putParcelableArrayList(getApplicationContext().getResources().getString(R.string.saved_instance_list_items_edit), _listItems);
}