2012-09-13 89 views
2

我正在開發一個android應用程序,我想保存我的片段是在向量片段。當我在onSaveIstanceState使用putFragment系統拋出IllegalStateException異常問題與getSupportFragmentManager()。putFragment

@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) 

爲什麼?我該如何解決這個錯誤?

回答

1

調用savedInstanceState()後,您無法執行任何片段事務。

活動將在活動返回時恢復最後附加的片段。

如果你想要做的與片段的任何行動使用:

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

A very good tutorial about fragments

+0

但我把片段fragmentpagerAdapter和pageviewer – esoni

+0

使用它http://developer.android.com/ reference/android/support/v13/app/FragmentPagerAdapter.html – meh

+0

你可以更具體一點嗎?我有和OP相同的代碼,但我不明白這可以提供什麼幫助。 – 4gus71n

相關問題