Java 使用片段保存和恢复实例状态

Java 使用片段保存和恢复实例状态,java,android,android-fragments,Java,Android,Android Fragments,这是我的密码: @Override public void onSaveInstanceState(Bundle savedInstanceStateBundle) { savedInstanceStateBundle.putInt(AVERAGE_SESSION_VALUE_HOLDER, averageSessionSeek.getProgress()); savedInstanceStateBundle.putInt(CONFIDENCE_VALUE_HOLDER, con

这是我的密码:

@Override
public void onSaveInstanceState(Bundle savedInstanceStateBundle)
{
    savedInstanceStateBundle.putInt(AVERAGE_SESSION_VALUE_HOLDER, averageSessionSeek.getProgress());
    savedInstanceStateBundle.putInt(CONFIDENCE_VALUE_HOLDER, confidenceSeek.getProgress());
    savedInstanceStateBundle.putInt(CONVERSION_TIME_VALUE_HOLDER, conersionTimeSeek.getProgress());

}
上面的代码属于
InputFragment.java
,它扩展了
Fragment
。上面的方法保存实例的状态,因此当用户离开该特定的
片段
并返回该片段时,实例将被恢复。我用下面的代码试过了

@Override 
public void onRestoreInstanceState(Bundle savedInstanceStateBundle)
{

}

但是它失败了,编译错误。那么,我如何在
片段中重新加载实例状态呢?

片段没有onRestoreInstanceState…它是onActivityCreated()(出于技术原因,Android团队以这种方式可怕地实现了这一点)

有关更多信息,请参阅StackOverflow。

有关StackOverflow的文档说明:

调用以要求片段保存其当前动态状态,以便稍后在重新启动其进程的新实例中对其进行重构。如果以后需要创建片段的新实例,您在捆绑包中放置的数据将在提供给onCreate(捆绑包)、onCreateView(LayoutFlater、ViewGroup、捆绑包)和onActivityCreated(捆绑包)的捆绑包中可用。

这与Activity.onSaveInstanceState(Bundle)相对应,这里的大部分讨论也适用于此


使用onActivityCreated(Bundle)代替onSaveInstanceState()。

那么我应该将还原代码放在哪里?在onActivityCreated(Bundle)中,请参阅