gpt4 book ai didi

android - getSupportFragmentManager().putFragment 问题

转载 作者:行者123 更新时间:2023-11-29 02:01:38 24 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,我想保存我在矢量 fragment 中的 fragment 。当我在 onSaveIstanceState 中使用 putFragment 时,系统抛出 IllegalStateException

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Salviamo lo stato


//salvo all fragment
for(int i=0;i<fragments.size();i++)
getSupportFragmentManager().putFragment(outState, Integer.toString(i), fragments.get(i));

}

这是日志:

09-13 10:38:10.230: E/AndroidRuntime(24089): java.lang.IllegalStateException: Fragment GenericPageFragment{417716e0} is not currently in the FragmentManager
09-13 10:38:10.230: E/AndroidRuntime(24089): at android.support.v4.app.FragmentManagerImpl.putFragment(FragmentManager.java:516)
09-13 10:38:10.230: E/AndroidRuntime(24089): at it.intects.dashboard.droid.BaseActivity.onSaveInstanceState(BaseActivity.java:180)
09-13 10:38:10.230: E/AndroidRuntime(24089): at android.app.Activity.performSaveInstanceState(Activity.java:1113)
09-13 10:38:10.230: E/AndroidRuntime(24089): at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1188)

为什么?我该如何解决这个错误?

最佳答案

调用 savedInstanceState() 后,您不能进行任何 fragment 事务。

当 Activity 返回时,Activity 将恢复最后附加的 fragment 。

如果您想对 fragment 执行任何操作,请使用:

getSupportFragmentManager().beginTransaction().add(R.layout.container,new MyFragment(), "fragment_tag").commit();

A very good tutorial about fragments

关于android - getSupportFragmentManager().putFragment 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com