简体   繁体   中英

Error in ViewPager in Fragments

Error shows in this line: mPageAdapter = new PageAdapter(this.getSupportFragmentManager(), fragments); and Errors are : change to getFragmentManager() or create method getSupportFragmentManager() But I have done both but not working. so please anybody help me. what need to change.

//ProjectOverview class

public class ProjectOverview extends Activity { 
    private PageAdapter mPageAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewpages_layout);      
         initialingpaging();
    }   

     private void initialingpaging() {          
            List<Fragment> fragments = new Vector<Fragment>();
            fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
            fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
            fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));
            mPageAdapter = new PageAdapter(this.getSupportFragmentManager(), fragments);            
            ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
            pager.setAdapter(mPageAdapter);
        }
}

// PageAdapter class

public final class PageAdapter extends FragmentPagerAdapter {
    private List<Fragment> fragments;
    public PageAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        // TODO Auto-generated constructor stub
        this.fragments = fragments;     
    }
    @Override
    public Fragment getItem(int arg0) {
        // TODO Auto-generated method stub
        return this.fragments.get(arg0);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return this.fragments.size();
    }
}

//viewpages_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+android:id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>    
</LinearLayout>

//Fragment1.class

public class Fragment1 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater,
             ViewGroup container, Bundle savedInstanceState) {      
        // TODO Auto-generated method stub
        if(container == null)
        {
            return null;
        }
        return (LinearLayout) inflater.inflate(R.layout.fragment1_layout,container,false);
    }
}

//same code for Fragment2.class and Fragment3.class

If you would like to use getSupportFragmentManager extend your ProjectOverview with FragmentActivity. It will work, it is an issue with support library and yours fragments should be imported from support library. Added (checked): Your activity should extends FragmentActivity so you can use getSupportFragmentManager() (on older device) if you are targeting only newer device use (extend Activity): getFragmentManager()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM