FragmentPagerAdapter没有更改片段内容

时间:2013-06-12 09:40:33

标签: android android-fragments android-viewpager fragmentpageradapter

FragmentPagerAdapter按项目向导

公共类SectionsPagerAdapter扩展了FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        Fragment fragment = new ChapterPageFragment();
        if (currentPart != null) {
            Bundle args = new Bundle();
            Chapter chapter =  currentPart.getChapters().get(position);
            if (chapter.getVerses() == null) {
                chapter.setVerses(currentDao.readVerses(currentPart, chapter));
            }
            args.putParcelable(Chapter.KEY, currentPart.getChapters().get(position));
            fragment.setArguments(args);
        }
        return fragment;
    }

    @Override
    public int getCount() {
        if (currentPart == null) {
            return 0;   // Before Initialzing
        }
        return currentPart.getChapterCount();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return getString(R.string.chapter_format, position+1);
    }
}

更改数据时

 actionListView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                currentPart = currentBook.getParts().get(position);
                viewPager.getAdapter().notifyDataSetChanged();
                slideMenu.showContent();
            }
        });

查看页面计数已更改,但页面(片段)内容未更改。

例如,

选择A部分,3页:“A1”,“A2”,“A3”

然后选择B部分,5页:“A1”,“A2”,“A3”,“B4”,“B5”(不是“B1”,“B2”, “B3”,“B4”,“B5”)

如何将页面内容A更改为B?

1 个答案:

答案 0 :(得分:0)

您应该使用FragmentStatePagerAdapter代替FragmentPagerAdapter,它将解决您的问题。