方法覆盖get Item of Fragment类并不总是被调用

时间:2014-03-13 07:32:42

标签: android android-fragments

我从Fragment类的方法覆盖getItem不再总是被调用的时候得到了问题。它只是在我第一次到达CircleFragmentAdapter课时才被调用。

这是我使用的课程并且遇到了这个问题:

public class CircleFragmentAdapter extends FragmentPagerAdapter {
    /**
     * Decide how many view pager in here
     */
    private int mCount = 5;

    private Class<?> Class;

    public CircleFragmentAdapter(FragmentManager fm, Class<?> Class) {
        super(fm);

        this.Class = Class;
    }

    /**
     * From beginning this method run,
     * After calling this class again, this method not run anymore.
     */
    @Override
    public Fragment getItem(int position) {
        Fragment mFragment = null;
        if (Class.getSimpleName().equals(
                ActivityDetailSimpleFragment.class.getSimpleName())) {
            switch (position) {
            default:
                mFragment = new ActivityDetailSimpleFragment();
                return mFragment;
            }
        } else if (Class.getSimpleName().equals(
                WelcomeNabuSimpleFragment.class.getSimpleName())) {
            switch (position) {
            default:
                mFragment = new WelcomeNabuSimpleFragment();
                return mFragment;
            }
        } else if (Class.getSimpleName().equals(
                SleepSimpleFragment.class.getSimpleName())) {
            switch (position) {
            default:
                mFragment = new SleepSimpleFragment();
                return mFragment;
            }
        }
        return mFragment;
    }

    @Override
    public int getCount() {
        return mCount;
    }
}

在我的片段类中,我称之为:

circleFragmentAdapter = new CircleFragmentAdapter(getFragmentManager(),
            ActivityDetailSimpleFragment.class);

mViewPager.setAdapter(circleFragmentAdapter);
circlePageIndicator.setViewPager(mViewPager);

如果无法调用方法getItem,则我创建的所有片段都不会被充气。

请告诉我如何解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

我改变了

public class CircleFragmentAdapter extends FragmentPagerAdapter

public class CircleFragmentAdapter extends FragmentStatePagerAdapter

现在可以解决这个问题了。