我希望在活动中创建片段。 我在一个活动中有4个片段。 我有这样的代码
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new fragment_invoice(), "Invoice");
adapter.addFragment(new fragment_sales_order(), "Sales Order");
adapter.addFragment(new fragment_achievement(), "Achievement");
adapter.addFragment(new fragment_approval(), "Approval");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
我已经成功地展示了碎片,但是当我打开其他的碎片时,例如:
- 打开 fragment_invoice
- 移动到 fragment_achievement
- 我回到 fragment_invoice,然后所有的数据都会丢失,但在 fragment_sales_order 中不会。
- 如果我打开 fragment_sales_order,那么也会发生同样的情况,移动到 fragment_approval,然后 fragment_sales_order 中的所有数据都会丢失。
为什么奇偶数碎片中的数据会丢失呢?
我研究过这个问题,可能可以给我一些使用 getchildfragmentmanager 的想法。 getChildFragmentManager () 无法解析或无法引用
对于 getchildfragmentmanager 方法,必须扩展 FragmentManager,但我的 java 类必须扩展 AppCompatActivity。无法扩展 FragmentManager,因为有些数据是从 http 中获取的,而通过 activity intent 扩展。
有人能帮我修复我的碎片,使得在移动到其他碎片时始终显示数据吗? 如果我的问题和语法很奇怪,请多多包涵。