5

Ich verwende Support-Bibliothek v4 und Fehler beim Speichern des Fragmentstatus.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"); 
    } 
    ... 
} 

Wenn ich rufe getFragment() Nullpointer geworfen wird (savedInstanceState enthält Eintrag mit "frag").

Hier ist der Teil der logcat Ausgabe:

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) 

Auch ich habe versucht getFragments() zu nennen, die null zurückgibt. Das erscheint mir komisch.

Ich werde jede Hilfe zu schätzen wissen!


Lösung:

Ich vergaß super.onSaveInstanceState(outState); innerhalb onCreate Methode zu verwenden.

+1

Rufen Sie die onSaveInstanceState-Methode innerhalb Ihrer übergeordneten Aktivität auf? (http://stackoverflow.com/a/8752360/2668136)) – Fllo

+0

Ja, sehr dumm von mir, vergaß "super.onSaveInstanceState (outState)" zu nennen. "Vielen Dank! – Tzoiker

+0

Gern geschehen. Froh, dass es jetzt funktioniert. – Fllo

Antwort

4

Dank @Fllo. Das Problem war, dass ich vergessen habe, onSaveInstanceState() der Elternaktivität anzurufen.

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

Sie meinen 'void onSaveInstanceState' richtig? –