Fragmento getArguments () devuelve null

Tengo un Fragment que tiene un TabHost como la disposición de la raíz como sigue …

 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@+id/tab_1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <!-- More FrameLayouts here - each are placeholders for Fragments --> </FrameLayout> </LinearLayout> </TabHost> 

El código para crear / actualizar cada Fragment para el contenido de la pestaña es el siguiente …

 private void updateTab(String tabId, int placeholder) { FragmentManager fm = getFragmentManager(); if (fm.findFragmentByTag(tabId) == null) { Bundle arguments = new Bundle(); arguments.putInt("current_day", mCurrentTab); EpgEventListFragment fragment = new EpgEventListFragment(); fragment.setArguments(arguments); fm.beginTransaction() .replace(placeholder, new EpgEventListFragment(), tabId) .commit(); } } 

En el onCreate(...) del EpgEventListFragment entonces intento obtener los argumentos Bundle pero siempre obtengo null haciendo lo siguiente …

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle arguments = getArguments(); if (arguments == null) Toast.makeText(getActivity(), "Arguments is NULL", Toast.LENGTH_LONG).show(); else mCurrentDay = getArguments().getInt("current_day", 0); ... } 

¿Que me estoy perdiendo aqui? También intenté getArguments() en onAttach(...) pero todavía conseguí null. Soy nuevo en el uso de Fragments por lo que estoy esperando hay una razón simple, pero no he llegado a con nada al buscar.

Estoy pensando que esto tiene que ver con su problema:

 fm.beginTransaction() .replace(placeholder, new EpgEventListFragment(), tabId) .commit(); 

Estás haciendo un nuevo Fragment (que no tiene argumentos ya que ha sido instanciado recientemente).

En su lugar intente

 Fragment fragment = new EpgEventListFragment(); fragment.setArguments(arguments); fm.beginTransaction() .replace(placeholder, fragment, tabId) .commit(); 
  • Espresso prueba pegado / inactivo después de realizar (haga clic ()) en el botón en ViewAnimator
  • El paquete de compatibilidad de Android no incluye Activity.getFragmentManager ()
  • Vaciar ListView dentro de ScrollView como dos Fragmentos
  • Excepción: fragmento ya activo
  • Fragmento vs Fragmento de soporte al apuntar api 21 (Android 5.0) y superior
  • ¿Cómo cambiar la actividad en el botón de navegación inferior?
  • ¿Cuál es el significado de addToBackStack con un parámetro nulo?
  • El fragmento del explorador de código de barras de Zxing se bloquea después de unos minutos
  • Diseño del encabezado encima de TabLayout
  • Cómo agregar un separador de sección para el cajón de navegación en Android?
  • Solicitar permisos de tiempo de ejecución desde v4.Fragment y tener devolución de llamada ir a Fragment?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.