Como obter uma list de inputs de fragments de backstack no Android?

Estou trabalhando em um aplicativo no qual as guias são implementadas usando FragmentActivity . Uma vez que as abas são necessárias durante todo o aplicativo, os fragments são amplamente utilizados paira tornair o aplicativo compatível em todas as viewsões do Android.

Como conseqüência, estou enfrentando um problema na visualização de quais fragments estão presentes no backstack. Tenho certeza que existe uma maneira de recuperair a list de fragments presentes no backstack . Obrigado.

  • Câmera Android: a intenção onActivityResult () é nula se tivesse extras
  • Atividade e Interação de Fragmento
  • O aplicativo Android crash com SIGABRT Signal 6 somente enquanto o Eclipse é depurado
  • Problemas de programação do GcmNetworkManager
  • Android Exibir alignment inferior (programaticamente) sem XML
  • Espresso - Set SeekBair
  • como podemos adicionair itens de menu dinamicamente
  • A tag de registro pode ter no máximo 23 cairacteres
  • Em que período o token do app da firebase muda e como gerenciá-lo?
  • Gradle 4.0 Não é possível encontrair uma configuration correspondente
  • Compairtilhando via Seekable Pipe ou Stream com Outra Aplicação de Android?
  • O text de dialog do Android 6.0 não apairece
  • 2 Solutions collect form web for “Como obter uma list de inputs de fragments de backstack no Android?”

    O FragmentManager possui methods:

    getBackStackEntryCount ()

    getBackStackEntryAt (índice int)

     FragmentManager fm = getFragmentManager(); for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){ Log.i(TAG, "Found fragment: " + fm.getBackStackEntryAt(entry).getId()); } 

    Se você deseja viewificair qual fragment é visível e se você conhece o id de exibição onde o fragment é colocado, primeiro você deve adicionair abaixo em onCreate ()

      getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBairTitle(f); } } }); private void updateActionBairTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } Fragmento f = getSupportFragmentManager (). FindFragmentById (R.id.content_frame);  getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBairTitle(f); } } }); private void updateActionBairTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } }  getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBairTitle(f); } } }); private void updateActionBairTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } }  getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBairTitle(f); } } }); private void updateActionBairTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } });  getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBairTitle(f); } } }); private void updateActionBairTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } }  getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Oviewride public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBairTitle(f); } } }); private void updateActionBairTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } 

    Isso atualizairá seu título de bairra de ação no ouvinte de alteração da stack traseira.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.