Android:ViewPager始终显示第二页

时间:2014-07-03 05:59:26

标签: android android-fragments position android-viewpager pager

我创建了一个小型Android应用程序,它使用Viewpager来阅读故事。这是我的代码:

覆盖FragmentStatePagerAdapter的getItem()方法:

@Override
    public Fragment getItem(int position) {
    TextStoryChapter chapter = (TextStoryChapter) getIntent().getSerializableExtra("chapter");
        return ScreenSlidePageFragment.create(position,chapter);
    }

ScreenSlidePageFragment类的create()方法:

public static final String ARG_PAGE = "page";
private int mPageNumber;
private static String chapterName;
private static String content;

public static ScreenSlidePageFragment create(int pageNumber, TextStoryChapter chapter) {
    ScreenSlidePageFragment fragment = new ScreenSlidePageFragment();
    Bundle args = new Bundle();
    args.putInt(ARG_PAGE, pageNumber);
    TextStoryChapterDetail detail = chapter.pages.get(pageNumber);
    chapterName = "Page " + Integer.toString(detail.pageNo);
    content = detail.content;
    fragment.setArguments(args);
    return fragment;
}

ScreenSlidePageFragment class的onCreate()方法:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mPageNumber = getArguments().getInt(ARG_PAGE);
    Log.e("PageNumber", Integer.toString(mPageNumber));
}

但是当我运行应用程序时,ViewPager始终显示第2页的内容(我创建了一个包含5个内容页面的TextStoryChapter),并在下一页显示相同的内容。第1页的内容刚刚消失。当我导航到第3页并滑回第1页时,一切都恢复正常,不再有第2页的重复内容,我不知道为什么以及如何发生。有人可以帮帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

锁定您的代码。创建ViewPager时,将重新分配2个变量chapterNamechapterContent数据,并且您的第1页数据将丢失。您应该将数据发布到Bundle,这会有所帮助。