简体   繁体   English

ViewPager中的片段错误

[英]Error in ViewPager in Fragments

Error shows in this line: mPageAdapter = new PageAdapter(this.getSupportFragmentManager(), fragments); 此行中显示错误:mPageAdapter = new PageAdapter(this.getSupportFragmentManager(),fragment); and Errors are : change to getFragmentManager() or create method getSupportFragmentManager() But I have done both but not working. 和错误是:更改为getFragmentManager()或创建方法getSupportFragmentManager()但我都做过,但是没有用。 so please anybody help me. 所以请大家帮我 what need to change. 需要改变什么。

//ProjectOverview class // ProjectOverview类

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 // PageAdapter类

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 //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 //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 // Fragment2.class和Fragment3.class的相同代码

If you would like to use getSupportFragmentManager extend your ProjectOverview with FragmentActivity. 如果要使用getSupportFragmentManager,请使用FragmentActivity扩展ProjectOverview。 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() 已添加(选中):您的活动应扩展FragmentActivity以便在仅针对较新的设备使用时(扩展活动)使用getSupportFragmentManager() (在较旧的设备上): getFragmentManager()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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