5

Utilizzo la libreria di supporto v4 e non riesco a salvare lo stato del frammento.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"); 
    } 
    ... 
} 

Quando chiamo getFragment() NullPointerException è gettato (savedInstanceState contiene voce con "frag").

qui è la parte della produzione logcat:

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) 

Anche io ho provato a chiamare getFragments() che restituisce null. Mi sembra strano

Apprezzerò qualsiasi aiuto!


Soluzione:

ho dimenticato di usare super.onSaveInstanceState(outState); all'interno onCreate metodo.

+1

Chiama il metodo onSaveInstanceState all'interno dell'attività padre? ([vedi] (http://stackoverflow.com/a/8752360/2668136)) – Fllo

+0

Sì, molto stupido da parte mia, ho dimenticato di chiamare 'super.onSaveInstanceState (outState)'. Grazie mille! – Tzoiker

+0

Prego. Sono contento che funzioni adesso. – Fllo

risposta

4

Grazie a @Fllo. Il problema era che mi sono dimenticato di chiamare onSaveInstanceState() dell'attività dei genitori.

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

Vuoi dire "void onSaveInstanceState" giusto? –

Problemi correlati