FragmentPagerAdapter notifyDataSetChanged no funciona

Tengo un FragmentPagerAdapter. Es método getItem puede devolver un fragmento de acuerdo a los datos que tiene desde el exterior. Después de actualizar los datos su supongo que para mostrar llamo notifyDataSetChanged y nada sucedió. HICE getItemPosition método getItemPosition para devolver POSITION_NONE :

 public static class TabsAdapter extends FragmentPagerAdapter implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener { private final Context mContext; private final TabHost mTabHost; private final ViewPager mViewPager; private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>(); private PagerTabsFragments fragmentDisplayInfo = null; // for now only a // single size // back // stack static class PagerTabsFragments { public int tabPosition; public Fragment fragmentToDisplay; public Object fragmentInfo; public PagerTabsFragments(int tab, Fragment frag, Object info) { tabPosition = tab; fragmentToDisplay = frag; fragmentInfo = info; } } public void SetFragmentToDisplay(int tabPosition, Fragment frag, Object info) { fragmentDisplayInfo = new PagerTabsFragments(tabPosition, frag, info); notifyDataSetChanged(); } public void CancelFragmentToDisplay() { fragmentDisplayInfo = null; } ... @Override public Fragment getItem(final int position) { if ((fragmentDisplayInfo != null) && (fragmentDisplayInfo.tabPosition == position)) { return fragmentDisplayInfo.fragmentToDisplay; } final TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); } @Override public int getItemPosition(Object item) { if (fragmentDisplayInfo == null) { return super.getItemPosition(item); } return POSITION_NONE; } ... 

Y la actualización desde fuera está en un evento de clic que establece el fragmentDisplayInfo var. Debuged y vi que el fragmentDisplayInfo es de hecho inicializado y el método getItemPosition devuelve POSITION_NONE , pero el método getItem ni siquiera se llama. ¿Porqué es eso?

2 Solutions collect form web for “FragmentPagerAdapter notifyDataSetChanged no funciona”

No estoy seguro acerca de esto, pero puede intentar utilizar FragmentStatePagerAdapter lugar de FragmentPagerAdapter . La cosa es, yo también he encontrado este problema, y ​​me ayudó

Lo que Nik Myers está diciendo es correcto. Sin embargo, falta una pieza. Cuando se llama notifyDataSetChanged, se llama al método getItemPosition. Debe anular esta opción para que los fragmentos se vuelvan a cargar.

  @Override public int getItemPosition(Object object) { // Causes adapter to reload all Fragments when // notifyDataSetChanged is called return POSITION_NONE; } 
  • Android ListView no se actualiza después de notifyDataSetChanged
  • NotifyDataSetChanged- RecyclerView -¿Es una llamada asincrónica?
  • Cómo utilizar ListView, ArrayList, ArrayAdapter y notifyDataSetChanged junto con un runnable, y un Handler de mensaje en el hilo principal
  • ¿Por qué no necesito usar Adapter.notifyDataSetChanged ()?
  • Emitir refrescando una vista de una fila en recyclerview
  • Hace notificydatasetchanged llamada onCreateViewHolder al usar RecyclerView
  • Actualizar Android ListView
  • Adaptador de Android "java.lang.IndexOutOfBoundsException: Índice no válido 4, tamaño es 4"
  • ¿Por qué no "notifyDatasetChanged ()" notifica todos los elementos visibles?
  • Android: ListFragment refresh utilizando notifyDataSetChanged () con el adaptador personalizado no funciona
  • NotifyDataSetChanged () no funciona con mi adaptador para gridview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.