【发布时间】:2018-01-12 13:36:19
【问题描述】:
在我的应用中有一个带有三个选项卡的 Activity,每个选项卡都包含一个 ListFragment。 ListFragment 必须显示不同的内容,但是当我通过捆绑包传递它时,它会被覆盖,并且我得到三个具有相同内容的片段(最新的一个) 代码如下:
在Activity的onCreate方法中:
{...
Fragment fragment;
Bundle bundle= new Bundle();
for(int i = 0; i<CATEGORIES.size(); i++) {
fragment = new MyListFragment();
bundle.putSerializable("Data", data.get(i));
fragment.setArguments(bundle);
screens.put(CATEGORIES.get(i),fragment);
}
setUpViewPagerAndTabs();
...
... }
protected void setUpViewPagerAndTabs(){
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setOffscreenPageLimit(screens.size()+1);
mAdapter = new PageAdapter(screens, getSupportFragmentManager());
mViewPager.setAdapter(mAdapter);
tabs = (TabLayout) findViewById(R.id.tabs);
tabs.setTabGravity(TabLayout.GRAVITY_FILL);
tabs.setTabMode(TabLayout.MODE_FIXED);
tabs.setupWithViewPager(mViewPager);
}
在 Fragment 类中,这一行会覆盖相应的数据:
ArrayList<String> names = (ArrayList<String>)
b.getSerializable(Activity.DATA);
即使我尝试将计数器 (i) 的值传递给片段,为了在片段中选择正确的数据元素,它也会被覆盖。 我该如何解决这个问题? 提前谢谢你
【问题讨论】:
标签: android android-fragments android-tabs