我有一个 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);
}