В моем приложении у меня есть 3 фрагмента в viewPager. Для первого фрагмента я хотел бы перезагрузить представление после нажатия кнопки (в основном снова вызвать onCreateView()
).Обновить фрагмент в ViewPager
Чтобы получить эту функциональность, я решил использовать FragmentTransaction
, detach()
, attach()
и commit()
фрагмента.
В фрагменте я создал SetData()
метод:
public void setData() {
Fragment frg = null;
frg = mainMenu.getFragmentByPosition();
final android.support.v4.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();
}
В своей деятельности, которая удерживает ViewPager у меня есть getFragmentByPosition()
метод:
public Fragment getFragmentByPosition() {
String tag = "android:switcher:" + R.id.viewpager + ":" + viewPager.getCurrentItem();
return getSupportFragmentManager().findFragmentByTag(tag);
}
Проблема заключается в том, что я получаю NullPointerException в getFragmentByPosition()
ОБНОВЛЕНИЕ
Проблема в том, что я не могу получить ссылку на текущий фрагмент.
adapter.getItem(1)
- возвращает null
getFragmentManager().getFragments().get(0)
- возвращает null
Вы пробовали с помощью 'adapter.notifyDataSetChanged();' – Dhruv