【发布时间】:2014-12-09 06:43:42
【问题描述】:
我有 Main Activity 和该 Activity 中的 View Pager。所以,我还有 FragmentStatePager 适配器来处理哪个 fragment 在 ViewPager 中显示。
无论如何,如您所知,ViewPager 会在内存中加载上一个、当前和下一个片段,这是有问题的,因为我想根据当前片段的用户交互从当前片段更改下一个片段中的内容值。
public class StageOneActivity extends FragmentActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_stage_one);
//ViewPager for Introduction
mStageOnePager = (ViewPager) findViewById(R.id.vp_stage_one);
mStageOnePager.setAdapter(new IntroFragmentPagerAdapter(getSupportFragmentManager()));
mStageOnePager.setOffscreenPageLimit(1);
//mStageOnePager.setCurrentItem(8);
}
private class IntroFragmentPagerAdapter extends FragmentStatePagerAdapter {
public IntroFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
switch(pos) {
case 0:
return StageOneFragment.newInstance(getResources().getColor(R.color.green), R.drawable.stage1_01);
case 1:
return StageOneFragment.newInstance(getResources().getColor(R.color.green), R.drawable.stage1_02);
case 2:
return TitleSpinnerFragment.newInstance(getResources().getColor(R.color.green), R.drawable.stage1_03, R.drawable.bkg_page_1_50);
case 3:
return CurrencySpinnerFragment.newInstance(getResources().getColor(R.color.green), R.drawable.stage1_03, R.drawable.pack_of_20);
case 4:
return SimpleSpinnerFragment.newInstance(getResources().getColor(R.color.green), R.drawable.stage1_05, R.drawable.bkg_page_1_50);
case 5:
return MoneySpentFragment.newInstance(getResources().getColor(R.color.green), R.drawable.money_spent_1, R.drawable.money_spent_2, "0");
case 6:
return StageOneFragment.newInstance(getResources().getColor(R.color.green), R.drawable.stage1_07);
如何将数据发送到已加载并在 ViewPager 中添加内容的片段?
我决定尝试使用 ViewPager.setOnPageChangeListener 并检测到用户何时滚动到选定的屏幕,但问题是我如何将该数据发送到该 Fragment 并显示它?
【问题讨论】: