Comprobar si existe un fragmento y reutilizarlo

Estoy usando el siguiente código para crear un fragmento cada vez que el usuario haga clic en un elemento en una vista de lista. Pero de esta manera el fragmento se crea en cada clic del usuario. Lo que quiero es reutilizar el fragmento antiguo (si existe) y volver a cargar su contenido (no crear uno nuevo).

MagazineViewFragment fragment = new MagazineViewFragment(); fragment.openStream(itemSelected); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, fragment) .commit(); 

¿Como lo puedo hacer?

Hay varias maneras, probablemente la más fácil es comprobar si el Fragmento actual en su container es una instancia de FragmentXYZ (en su caso MagazineViewFragment ).

Ejemplo

 Fragment mFragment = getFragmentManager().findFragmentById(R.id.container); if (mFragment instanceof MagazineViewFragment) return; 

Algo como esto podría ayudar:

 getFragmentManager().findFragmentById(fragmentId); 

No olvide el cheque nulo.

Agregar etiqueta cuando llama a su fragmento de la actividad:

 FragmentManager fm = getFragmentManager(); Fragment fragment = fm.findFragmentByTag( MagazineViewFragment.TAG); if (fragment == null) { MagazineViewFragment fragment = new MagazineViewFragment(); fragment.openStream(itemSelected); getFragmentManager() .beginTransaction() .add(R.id.container, fragment, MagazineViewFragment.TAG) .commit(); } 

Si sólo necesita actualizar itemSelected – vea emisiones o escuchas.

  • ¿Cómo diferencia exactamente JVM de Dalvik y / o ART?
  • Android: Java: La descontinuación de SlidingDrawer
  • No encontró la clase "com.google.firebase.provider.FirebaseInitProvider"
  • La interfaz de usuario de Tablet no funciona en mi aplicación
  • Errores al actualizar la aplicación cordova
  • Android Studio: ¿dónde está la lista de funciones?
  • "Clase no encontrada" al ejecutar pruebas JUnit desde IntelliJ IDEA (Android)
  • Red inalámbrica Wi-Fi de Android
  • No public RealmResults <E> Constructor?
  • Android Httpclient
  • Práctica recomendada para que el cliente android se comunique con un servidor mediante subprocesos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.