ユーザーが子要素をクリックすると別のアクティビティを開始する ExpandableListActivity (SimpleCursorTreeAdapter を使用) があります。新しいアクティビティで戻るボタンを押すと、すべてのリスト項目が再び折りたたまれます。ExpandableListActivity の展開された状態を保存して、再度復元するにはどうすればよいですか。
私はすでに onSaveInstanceState() と onRestoreInstanceState() をこのように実装しようとしました...
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Parcelable listState = getExpandableListView().onSaveInstanceState();
outState.putParcelable("ListState", listState);
}
@Override
protected void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
Parcelable listState = state.getParcelable("ListState");
getExpandableListView().onRestoreInstanceState(listState);
}
...しかし、 onRestoreInstanceState() は呼び出されません。また、 onCreate() メソッドで状態を復元しようとしましたが、同様に呼び出されません:
if (savedInstanceState != null) {
Parcelable listState = savedInstanceState.getParcelable("ListState");
getExpandableListView().onRestoreInstanceState(listState);
}