【发布时间】:2014-08-01 16:31:53
【问题描述】:
我有一个 Activity,其中包含一些在 onCreate() 中创建并由 FragmentPagerAdapter(在 getItem(int) 中)返回的片段。这很好用。如果 Activity 被销毁然后重新创建(通过让手机进入睡眠状态很容易重现)旧的 Fragments 会通过调用 super.onCreate(Bundle) 自动恢复,因为我将“savedInstanceState”传递给它。这就是我想要的。
问题是,我如何获得对这些片段的引用?它们正在创建中,但我无法访问它们。现在我每次调用 onCreate() 时都在重新创建片段,这并不理想。
必须有办法做到这一点,对吧?
编辑:我根本没有使用 FragmentManager。我正在使用 FragmentPagerAdapter。下面是一个例子。自定义片段是在 onCreate() 中创建的,我希望指向重新创建的片段。我需要引用这些片段,因为活动有时会调用它们的方法。
public class SectionsPagerAdapter extends FragmentPagerAdapter
{
public SectionsPagerAdapter(FragmentManager fm)
{
super(fm);
}
@Override
public Fragment getItem(int position)
{
Fragment fragment = null;
switch (position)
{
case 0:
fragment = myCustomFragment1;
break;
case 1:
fragment = myCustomFragment2;
break;
case 2:
fragment = myCustomFragment3;
break;
}
return fragment;
}
@Override
public int getCount()
{
return 3;
}
@Override
public CharSequence getPageTitle(int position)
{
switch (position)
{
default:
case 0:
return "Fragment Title 1";
case 1:
return "Fragment Title 2";
case 2:
return "Fragment Title 3";
}
}
}
【问题讨论】:
标签: android android-activity android-fragments