1

更新:実際のコードを含む

カスタムアダプターを埋めるために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);

}
4

0 に答える 0