这是我的代码:
@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
的{{1}}。上述方法保存了实例的状态,因此当用户离开该特定Fragment
并返回到该实例时,将恢复实例。我用以下代码尝试了它
Fragment
但它失败了,编译错误。那么,我如何在@Override
public void onRestoreInstanceState(Bundle savedInstanceStateBundle)
{
}
?
答案 0 :(得分:0)
片段没有onRestoreInstanceState ...它是onActivityCreated()(由于技术原因,这是由Android团队以这种方式实现的。)
有关详细信息,请参阅StackOverflow上的this thread。
答案 1 :(得分:0)
onSaveInstanceState的文档说明了这一点:
调用以请求片段保存其当前的动态状态,以便稍后可以在重新启动其进程的新实例中重建它。如果稍后需要创建片段的新实例,那么您在Bundle中放置的数据将在提供给 onCreate(Bundle),onCreateView(LayoutInflater,ViewGroup,Bundle)和onActivityCreated(Bundle)的Bundle中可用。 )。强>
这对应于Activity.onSaveInstanceState(Bundle),此处的大部分讨论都适用于此。
使用onActivityCreated(Bundle)而不是onSaveInstanceState()。