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.

  • No se puede generar APK firmado con proguard habilitado cuando se usa Joda Time
  • Android: Share ¿La intención de la imagen no funciona con Facebook?
  • Cómo alinear a la derecha PreferencesActivity en android?
  • R.id no se puede resolver
  • Mostrar estructura de datos no lineal como árbol en Android View
  • Mejorando la velocidad de getpixel () y setpixel () en Android Bitmap
  • Arreglo de objetos de calendario
  • Socket - Cliente Java, Servidor C #
  • ¿Cómo obtener el punto real cuando toco en la pantalla?
  • Genéricos con ArrayAdapters
  • El mensaje de HttpPost de Android no enviará su carga útil a través del cable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.