SavedInstanceState é sempre nulo em fragment

Eu tenho um fragment anexado à atividade usando XML (e setContentView () em atividade). A tem um problema porque tenho visualizações muito dinâmicas no meu fragment, então, quando as mudanças de orientação eu devo restaurair todos os estados de exibição.

Tenho problema porque estou usando algo assim:

  • Como cairregair AnimationDrawable a pairtir do file xml
  • Restrições de key estrangeira no Android usando o SQLite? em Eliminair cascata
  • Kotlin Coroutines é o path certo no Android
  • Recebendo stream de vídeo de uma câmera IP no Android
  • Como passair um valor de um Fragmento paira outro no Android?
  • Android emulador http-proxy SSL crash de handshake
  • public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean("restore", true); outState.putInt("nAndroids", 2); } 

    Mas após a mudança de orientação quando os methods com pairam Bundle savedInstanceState são chamados (como onCreateView, etc.) my saveInstanceState é sempre nulo.

    Eu não sou um noob no Android, mas agora estou muito bravo por causa desse problema …

     public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (savedInstanceState == null) { //smth } else { // smthelse THIS IS NEVER REACHED BECAUSE BUNDLE IS ALWAYS NULL } getListView().setDivider(getResources().getDrawable(R.drawable.list_divider)); } } public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (savedInstanceState == null) { //smth } else { // smthelse THIS IS NEVER REACHED BECAUSE BUNDLE IS ALWAYS NULL } getListView().setDivider(getResources().getDrawable(R.drawable.list_divider)); } 

  • Taglib paira Android
  • Como configurair o ADB paira desenvolvimento de máquina remota e deployment local de dispositivos
  • android.content.res.Resources $ NotFoundException: String ID do recurso # 0x1 Error
  • Android - como obter ou configurair (imprimir) DPI (pontos por polegada) do file JPEG ao cairregair ou salvá-lo de forma programática?
  • Como você detecta quando um file de som foi finalizado?
  • Projeto de biblioteca Android como file jair paira distribuição, como o google analytics
  • 5 Solutions collect form web for “SavedInstanceState é sempre nulo em fragment”

    Todo o problema era que eu não declairo Android: id paira o fragment em XML. O Android precisa de ID ou TAG paira reconhecer o fragment airmazenado e reproduzir todos os elementos nele. Então pessoal, lembre-se – cada instância de fragment precisa de id ou tag exclusivo!

    Além disso, quando setRetainInstance (true) é declairado, o package deve sempre retornair nulo.

    Eu tive um problema semelhante em que sempre estava ficando guairdadoInstanceState como nulo apesair de fornecer o package paira o Fragmento.

    A única solução que funcionou paira mim foi fazer

     myFragment.setArguments(bundle) 

    com o meu package da Atividade e faça um

     Bundle bundle = this.getArguments(); 

    em onCreateView do fragment.

    Espero que isso ajude alguém.

    Paira Fragmento: –

     use this for save state of fragment on orientation. onCreate(Bundle save) { super.onCreate(save); setRetainInstance(true); } { use this for save state of fragment on orientation. onCreate(Bundle save) { super.onCreate(save); setRetainInstance(true); } 

    Veja este tutorial: – http://techbandhu.wordpress.com/2013/07/02/android-headless-fragment/

    Paira atividade: –

    Quando você inicia seu aplicativo, no onCreate , o object do package é nulo, então você deve colocair uma viewificação como abaixo e quando você gira a canvas, então onSaveInstance é chamado e seu object do package é inicializado

      @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); if (savedInstanceState != null) { boolean t = outState.getBoolean("restore"); int s = outState.getInt("nAndroids"); } } se (savedInstanceState! = null) {  @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); if (savedInstanceState != null) { boolean t = outState.getBoolean("restore"); int s = outState.getInt("nAndroids"); } } }  @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); if (savedInstanceState != null) { boolean t = outState.getBoolean("restore"); int s = outState.getInt("nAndroids"); } } 

    Ok, eu sei que isso é uma post antiga, mas não consegui encontrair a resposta certa paira mim nem muitos outros lugaires, então posteio como corrigi o meu caso.

    Então, My Fragment está dentro de uma atividade. E originalmente tentei save o Bundle somente em Fragment e recuperá-lo no onCreateView. No entanto, esse foi o problema.

    Eu repairei isso iniciando o object myFragment na atividade e colocando esse object no Bundle de atividade em onSaveInstanceState (). Em seguida, recuperou-o no onRestoreInstanceState (). Eu usei getSupportFragmentManager (). PutFragment / getFragment. Em seguida, o saveInstanceState no fragment não era mais nulo.

    Primeiro, você deve colocair seus dados e, em seguida, chamair o super.onSaveInstanceState(outState);

     public void onSaveInstanceState(Bundle outState) { outState.putBoolean("restore", true); outState.putInt("nAndroids", 2); super.onSaveInstanceState(outState); } 

    E certifique-se de que a atividade não tenha propriedade AndroidManifest.xml no AndroidManifest.xml ou configure-a como falsa .

      <activity android:noHistory="false"> <atividade  <activity android:noHistory="false"> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.