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?

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; } 
  • El adaptador de RecyclerView notifyDataSetChanged no funciona
  • Cómo actualizar algunos datos en un ListView sin utilizar notifyDataSetChanged ()?
  • Android ParseQueryAdapter notifyDataSetChanged no funciona
  • Actualizar Android ListView
  • Adaptador de Android "java.lang.IndexOutOfBoundsException: Índice no válido 4, tamaño es 4"
  • Cómo proporcionar animación personalizada durante la clasificación (notifyDataSetChanged) en RecyclerView
  • NotifyDataSetChange no funciona desde un adaptador personalizado
  • Using notifyItemRemoved o notifyDataSetChanged con RecyclerView en Android
  • Android ListView no se actualiza después de notifyDataSetChanged
  • NotifyDataSetChanged- RecyclerView -¿Es una llamada asincrónica?
  • Android: ListFragment refresh utilizando notifyDataSetChanged () con el adaptador personalizado no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.