我有一个带有两个片段的MainActivity。片段1是MapsFragment,片段2是ListFragment。当我启动应用程序时,我从Fragment 1获取了用户位置(纬度和经度)。我还想做的是将数据传递给Fragment 2,然后再开始加载,然后在Fragment 2中调用onCreateView,这样我就可以了我从片段1接收到的含有经纬度的东西
通常,我会使用意图将数据从一个片段发送到另一个片段,然后通过活动进行发送,但是我的问题要更具体一些,因为在我有时间传递数据之前,片段2紧接在片段1之后加载。
我的主要活动:
tabLayout = findViewById(R.id.sliding_tabs);
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.tab_one)));
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.tab_two)));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
viewPager = findViewById(R.id.viewpager);
adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setOffscreenPageLimit(2);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
// Step 2 - undo expand for collapsible toolbar
appBarLayout.setExpanded(true);
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
我的PagerAdapter:
public class PagerAdapter extends FragmentStatePagerAdapter {
private int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new MapsFragment();
case 1:
return new ListFragment();
case 2:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
MMMHUHU
红颜莎娜
相关分类