在应用程序中,只要片段失去焦点(即在其上打开另一个活动/片段),就会onSaveInstanceState()
调用它。
开发人员指南中也提到了这一点。
我正在尝试使用此方法在恢复片段时保持片段的状态。我的意图是在片段恢复时调用bundle
它onActivityCreated()
。
虽然onSaveInstanceState
在片段失去焦点之前被调用。但是,当onActivityCreated()
被调用时,它会接收Bundle savedInstanceState
为 null。
如何从捆绑包中获取数据。
代码:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
MyListAdapter adapter = new MyListAdapter(getActivity(),
R.layout.my_row, titles, icons, this);
setListAdapter(adapter);
if (savedInstanceState != null) {
// Never goes inside this condiiton.
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}