5

Destek kitaplığı v4 kullanıyorum ve parçanın durumunu kaydedemiyorum.FragmentManager.getFragment() NullPointerException

@Override 
protected void onSaveInstanceState(Bundle outState) 
{ 
    ... 
    if(mFragment != null) 
     getSupportFragmentManager().putFragment(outState, "frag", mFragment); 
    ... 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    ... 
    if(savedInstanceState != null) 
    { 
     //Here I get NullPointerException 
     getSupportFragmentManager().getFragment(savedInstanceState, "frag"); 
    } 
    ... 
} 

Ben getFragment() NullPointerException atılır (savedInstanceState "frag" ile girdi içerir) çağırdığınızda.

04-18 00:10:56.719: E/AndroidRuntime(14644): Caused by: java.lang.NullPointerException 
04-18 00:10:56.719: E/AndroidRuntime(14644): at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:569) 

Ayrıca ben null döndürür getFragments() aramaya çalıştık: Burada

logcat çıkışı bir parçasıdır. Bu bana garip geliyor.

Herhangi bir yardım için minnettar olacağım!


Çözüm:

Ben onCreate yöntemi içinde super.onSaveInstanceState(outState); kullanmayı unuttum.

+1

Ebeveyn etkinliğinizin içinde onSaveInstanceState yöntemini çağırır mısınız? ([see] (http://stackoverflow.com/a/8752360/2668136)) – Fllo

+0

Evet, çok aptalım, "super.onSaveInstanceState (outState)' yi çağırmayı unuttun. Çok teşekkür ederim! – Tzoiker

+0

Rica ederim. Şu an çalıştığına sevindim. – Fllo

cevap

4

@Fllo'ya teşekkürler. Sorun, ebeveyn etkinliğinin onSaveInstanceState() numaralı telefonunu aramayı unutmam.

@Override 
protected void onSaveInstanceState(Bundle outState) 
{ 
    //Added this and the problem was solved 
    super.onSaveInstanceState(outState); 
    ... 
} 
+1

Yani "OnSaveInstanceState" geçersiz? –