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 …
- Uso de ViewPager con fragmentos nativos
- No se puede cambiar el identificador de contenedor del fragmento SupportMapFragment
- Fragmentos, AsyncTask y Oyentes
- AddToBackStack () no funcionó. Volver al inicio no fragmento anterior
- Fragmento de mapas de Google para Android en RecyclerView.ViewHolder
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.
- ListView con Viewpager como un encabezado dentro de TabPageIndicator
- Void android.support.v4.app.Fragment.setMenuVisibility (boolean) 'en una referencia de objeto nulo
- Terminando un fragmento
- Refrescar vista de fragmentos mientras utiliza FragmentStatePagerAdapter
- ¿Cómo cambiar el contenido del fragmento al transferir datos del fragmento después de buscar en RecyclerView?
- Cómo pasar Bundle de Fragment a Fragment
- NullPointerException en ViewPager con Recyclerview
- Android: fragmentos sobrepuestos
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();