我正在使用Activity
Android 提供的选项卡,带有android.support.v7.app.ActionBar.TabListener
,ViewPager
和FragmentPagerAdapter
. 父母Activty
共同拥有并管理三个Fragment
。此外,父 Activity 有一个方法来保存 Fragment 提供的数据。为了获取其中定义的数据(而不是由父 Activity 发送),我编写了以下代码:
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
由第三个片段引起的,它是空的。只有当我没有在我的设备上显示第二个或第三个片段时才会发生这种情况。我不明白如何避免和解决这种行为。有什么建议吗?