Я использую вкладку Activity
, предоставленную Android с android.support.v7.app.ActionBar.TabListener
, ViewPager
и FragmentPagerAdapter
. Родитель Activty
cointains и управляет тремя Fragment
. Кроме того, родительская активность имеет способ сохранения данных, предоставленных фрагментами. Для того, чтобы получить данные, определенные в них (и не отослано родительским деятельности) Я написал следующий код:findFragmentByTag() возвращает null только на третьей вкладке ActioBar
MyFragment frag = (MyFragment) mSectionsPagerAdapter.getActiveFragment(mViewPager,1,getSupportFragmentManager());
Где getActiveFragment()
является
public Fragment getActiveFragment(ViewPager container, int position, FragmentManager mFragmentManager) {
String name = makeFragmentName(container.getId(), position);
return mFragmentManager.findFragmentByTag(name);
}
private String makeFragmentName(int viewId, int index) {
return "android:switcher:" + viewId + ":" + index;
}
На самом деле, я следующий Проблема: когда я пытаюсь сохранить данные, предоставленные тремя фрагментами, у меня есть java.lang.NullPointerException
, вызванный третьим фрагментом, который является нулевым. Это происходит, только если на моем устройстве не отображается второй или третий фрагмент. Я не понимаю, как избежать и исправить это поведение. Любое предложение?