从活动调用getSupportFragmentManager()时出错

时间:2013-04-12 20:58:53

标签: android android-fragments swipeview

我正在尝试使用片段实现滑动视图。 但是,对于我来说,扩展简单活动而不是片段活动非常非常重要。 我在下面的代码中得到了getSupportFragmentManager()的错误:

public class CollectionDemoActivity extends Activity {

DemoCollectionPagerAdapter mDemoCollectionPagerAdapter;

ViewPager mViewPager;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_collection_demo);


    mDemoCollectionPagerAdapter = new DemoCollectionPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mDemoCollectionPagerAdapter);
}

public static class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter {

    public DemoCollectionPagerAdapter(FragmentManager fm) {
        super(fm);
        //int x=10;
    }

    @Override
    public Fragment getItem(int i) {
        Fragment fragment = new DemoObjectFragment();
        Bundle args = new Bundle();
        args.putInt(DemoObjectFragment.ARG_OBJECT, i + 10); 
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public int getCount() {
        // For this contrived example, we have a 100-object collection.
        return 100;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return "OBJECT " + (position + 1);
    }
}


public static class DemoObjectFragment extends Fragment {

    public static final String ARG_OBJECT = "object";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_collection_object, container, false);
        Bundle args = getArguments();
        ((TextView) rootView.findViewById(android.R.id.text1)).setText(
                Integer.toString(args.getInt(ARG_OBJECT)));
        return rootView;
    }
}
}

1 个答案:

答案 0 :(得分:5)

错误非常明显。 getSupportFragmentManager()仅为FragmentActivity类定义。无论您想要或需要多少调用该方法,它对于普通活动都不存在。

另请参阅:Difference between Activity and FragmentActivityDifference between Fragment and FragmentActivity