是我遗漏了什么,还是Fragment没有onRestoreInstanceState()方法?如果不是,我该如何达到类似的效果呢?
发布于 2011-03-24 08:28:14
片段没有onRestoreInstanceState方法。
您可以在onActivityCreated中实现相同的结果,它接收一个具有保存的实例状态(或null)的包。
查看源代码here。
发布于 2014-12-10 22:37:09
我知道,您已经接受了答案,但您应该阅读official documentation about fragments,它说(“处理片段生命周期”这一段):
您可以使用包保留片段的状态,以防活动的进程被终止,并且您需要在重新创建活动时恢复片段状态。您可以在片段的onSaveInstanceState()回调期间保存状态,并在onCreate()、onCreateView()或onActivityCreated()期间恢复它。
因此,您可以使用最适合自己的语言:onCreate()、onCreateView()或onActivityCreated()
发布于 2014-05-07 20:27:30
在Fragments guide的ListFragment example中,您可以找到:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}它可以像这样使用:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}在片段从堆栈返回之后调用onActivityCreated()。
https://stackoverflow.com/questions/5412746
复制相似问题