IllegalStateException: Fragmento ya agregado en el fragmento tabhost

09-19 12:23:01.084: E/AndroidRuntime(24169): FATAL EXCEPTION: main 09-19 12:23:01.084: E/AndroidRuntime(24169): Process: com.example.loan, PID: 24169 09-19 12:23:01.084: E/AndroidRuntime(24169): java.lang.IllegalStateException: Fragment already added: FormFragment{428f10c8 #1 id=0x7f050055 form} 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1192) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:722) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1533) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.support.v4.app.FragmentManagerImpl$2.run(FragmentManager.java:489) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.os.Handler.handleCallback(Handler.java:733) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.os.Handler.dispatchMessage(Handler.java:95) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.os.Looper.loop(Looper.java:136) 09-19 12:23:01.084: E/AndroidRuntime(24169): at android.app.ActivityThread.main(ActivityThread.java:5068) 09-19 12:23:01.084: E/AndroidRuntime(24169): at java.lang.reflect.Method.invokeNative(Native Method) 09-19 12:23:01.084: E/AndroidRuntime(24169): at java.lang.reflect.Method.invoke(Method.java:515) 09-19 12:23:01.084: E/AndroidRuntime(24169): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) 09-19 12:23:01.084: E/AndroidRuntime(24169): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 09-19 12:23:01.084: E/AndroidRuntime(24169): at dalvik.system.NativeStart.main(Native Method) 

Así que, tengo una aplicación para Android que se construye con el tabhost. Hay tres fichas en total, en la tab2, hay un botón para hacer la transacción de fragmento en tab2 (que está llamando a la función en la actividad de fragmento)

 FragmentTransaction t = getSupportFragmentManager().beginTransaction(); t.replace(R.id.realtabcontent, mFrag); t.addToBackStack(null); t.commit(); 

Hay excepción si corro así:

  1. Dentro de la tab2, presiono el botón para cambiar el fragmento
  2. Vaya a otra pestaña (por ejemplo, pestaña 1 o pestaña 3)
  3. Presione el botón Atrás
  4. Probar excepción

¿Cómo arreglar eso? Gracias por ayudar

Esto sucede cuando intentamos agregar el mismo fragmento o DialogFragment dos veces antes de descartar,

solo llama

 if(mFragment.isAdded()) { return; //or return false/true, based on where you are calling from } 

Usted sólo tiene que comprobar una condición en su fragmento mencionado a continuación:

 if(!isAdded()) { return; } 

IsAdded = Devuelve true si el fragmento se agrega actualmente a su actividad. Tomado del documento oficial. Esto no agregará ese fragmento si ya está agregado

Consulta el siguiente enlace para una referencia:
http://developer.android.com/reference/android/app/Fragment.html#isAdded ()

Sólo tiene que comprobar una condición antes de iniciar la transacción de fragmentos

  if (!fragmentOne.isAdded()){ transaction = manager.beginTransaction(); transaction.add(R.id.group,fragmentOne,"Fragment_One"); transaction.commit(); } 

Esto está trabajando perfactly para mí …

A veces sucede por no encontrar la identificación correcta del diseño respectivo. Me enfrenté a este problema. Luego, después de muchas horas, descubrí que me había equivocado con el ID de reciclaje. Lo cambio, y funciona bien para mí.

Por lo tanto, verifique el diseño de su fragmento.

  • Método de Fragmento tabulado de llamada de la actividad
  • Las pestañas muestran el fragmento en blanco al volver a fragmentar la segunda vez
  • ¿Cómo cargar la actividad del fragmento el método de creacion () de la barra seleccionada de la barra de acciones solo si la pestaña está seleccionada?
  • No se encontró ningún identificador de recurso para el atributo 'layout_behavior' en el paquete
  • Cómo ocultar las pestañas de Android utilizando Xamarin Formulario renderizador personalizado?
  • Mostrar opciones de menú en la barra de herramientas de Actividad contiene pestañas como fragmento
  • Tabhost- establece la posición de la divisa en pestañas Android
  • Acceso mediante programación a una vista que se define en XML de un fragmento en Android
  • Actionbarsherlock + tabs + multi fragmentos?
  • Fijas fijas en nuevo diseño de material android
  • Crash en MediaController.show ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.