【发布时间】:2011-05-10 05:34:03
【问题描述】:
我有一个 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);
}
【问题讨论】:
-
我在这里做类似的事情stackoverflow.com/questions/10611927/…
-
@toobsco42 我看不出这与问题有什么关系
-
返回上一个活动时要注意再次设置适配器。重新设置适配器将折叠列表。
标签: android state expandablelistview