本文介绍了问题getSupportFragmentManager()。putFragment的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我开发一个Android应用程序,我想救我的片段是在载体片段。当我在onSaveIstanceState使用putFragment系统抛出IllegalStateException异常
I am developing an android application and I want to save my fragment that is in the vector fragments. When I use putFragment in onSaveIstanceState the system throw 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));
}
这是logcat的:
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)
为什么呢?我该如何解决这个问题?
Why ? How can I resolve this error ?
推荐答案
您不能做任何片段交易savedInstanceState()被调用后。
You can't do any fragment transactions after savedInstanceState() was called.
该活动将恢复最后附加片段活动时的回报。
The activity will restore the last attached fragment when the activity returns.
如果你想要做的碎片任何操作使用方法:
And if you want to do any actions with fragments use:
getSupportedFragmentManager().beginTransaction().add(R.layout.container,new MyFragment(), "fragment_tag").commit();
有关片段一个非常好的教程
这篇关于问题getSupportFragmentManager()。putFragment的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!