片段中未定义的getSupportFragmentManager() [英] getSupportFragmentManager() undefined in Fragment

查看:70
本文介绍了片段中未定义的getSupportFragmentManager()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在创建带有滑动选项卡的滑块菜单时,我在getSupportFragmentManager()上收到错误消息此方法在Fragment中未定义".

i'm getting error on getSupportFragmentManager() that "this method undefine in Fragment", while creating slider menu with sliding tab i prepared code as bellow..

public class HomeFragment extends Fragment {

    Toolbar toolbar;
    ViewPager viewpager;
    ViewPagerAdapter adapter;
    SlidingTabLayout tabs;
    CharSequence Titles1[] = { "Home", "Help", "Contect" };
    // int Titles[] = { R.drawable.ic_content_copy_black_24dp,
    // R.drawable.ic_refresh_black_24dp, R.drawable.ic_share_black_24dp };
    int NumOfTabs = 3;

    public HomeFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_home, container,
            false);

        return rootView;

        adapter = new ViewPagerAdapter(getSupportFragmentManager(), Titles1,
            NumOfTabs);

        viewpager = (ViewPager) rootView.findViewById(R.id.pager);
        viewpager.setAdapter(adapter);

        tabs = (SlidingTabLayout) rootView.findViewById(R.id.tabs);
        tabs.setDistributeEvenly(true);
    }

我的ViewPager适配器类如下所示

and my adapter class for ViewPager is as bellow

public class ViewPagerAdapter extends FragmentStatePagerAdapter{

    CharSequence Titles1[];
    int Titles[];
    int NumbOfTabs;

    public ViewPagerAdapter(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabs) {
        super(fm);
        this.Titles1 = mTitles;
        this.NumbOfTabs = mNumbOfTabs;
    }

    @Override
    public Fragment getItem(int arg0) {

        if(arg0 == 0){
            Tab1 tab1 = new Tab1();
            return tab1;
        }else if(arg0 == 1){
            Tab2 tab2 = new Tab2();
            return tab2;
        }else{
            Tab3 tab3 = new Tab3();
            return tab3;
        }
    }


    @Override
    public CharSequence getPageTitle(int position) {
        return Titles1[position];
    }

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

推荐答案

只需替换:

getSupportFragmentManager()

具有:

getFragmentManager()


如果使用的是android.support.v4.app.Fragment,它将返回android.support.v4.app.FragmentManager(SupportFragmentManager)


If you are using a android.support.v4.app.Fragment it will return a android.support.v4.app.FragmentManager (SupportFragmentManager)

如果您使用的是android.app.Fragment,它将返回一个android.app.FragmentManager

If you are using a android.app.Fragment it will return a android.app.FragmentManager

请记住,它在Activity中的处理方式与在android.support.v4.app.FragmentActivity中的处理方式不同.那里有getSupportFragmentManager()getFragmentManager()

Keep in mind that it handled different that in Activities.Like in the android.support.v4.app.FragmentActivity. There you have got getSupportFragmentManager() and getFragmentManager()

这篇关于片段中未定义的getSupportFragmentManager()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆