Problems with FragmentPagerAdapter

mXX picture mXX · Mar 14, 2013 · Viewed 13k times · Source

I'm trying to make a slidescreen with viewpager and fragments so that I can load different layouts per fragment and give each page different functionality.

I followed a tutorial to accomplish this.

The error I'm getting when hovering over public Fragment getItem(int arg0): The return type is incompatible with FragmentPagerAdapter.getItem(int)

and error #2: The constructor FragmentPagerAdapter(FragmentManager) is undefined --> getting this one when hovering super(fm);

package com.example.spui;

import android.os.Bundle;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class MyFragmentPagerAdapter extends FragmentPagerAdapter{

    final int PAGE_COUNT = 5;

    /** Constructor of the class */
    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /** This method will be invoked when a page is requested to create */
    @Override
    public Fragment getItem(int arg0) {

        MyFragment myFragment = new MyFragment();
        Bundle data = new Bundle();
        data.putInt("current_page", arg0+1);
        myFragment.setArguments(data);
        return myFragment;
    }

    /** Returns the number of pages */
    @Override
    public int getCount() {
        return PAGE_COUNT;
    }
}

Answer

ianhanniballake picture ianhanniballake · Mar 14, 2013

You are using the wrong FragmentManager import. Use android.support.v4.app.FragmentManager instead.

Same problem with Fragment - use android.support.v4.app.Fragment

Note: if you are building an API11+ only application and want to use the native Fragments, then you should instead change your FragmentPagerAdapter import to android.support.v13.app.FragmentPagerAdapter.