非静态方法getsupportfragmentmanager()不能从静态上下文中引用

时间:2016-06-30 06:56:28

标签: java android android-fragments static-methods fragmentpageradapter

我从静态上下文android调用FragmentPageAdapter时出现以下错误:

  

错误:非静态方法getSupportFragmentManager()不能   从静态上下文引用。

ViewPager.setAdapter(new TabsPagerAdapter(getSupportFragmentManager(), 
                                          myCategory, cxt));
ViewPager.setCurrentItem(ViewPager.getCurrentItem());
slidingTabLayout.setViewPager(ViewPager);

4 个答案:

答案 0 :(得分:1)

无法从您发布的代码中确定,但看起来您可能有一个变量ViewPager viewPager = ...;,您想要调用setAdapter(...),但在viewPager中意外使用大写字母V,这会导致它调用类方法而不是实例方法。

答案 1 :(得分:0)

getActivity().getSupportFragmentManager();

答案 2 :(得分:0)

我认为应该使用对象引用来调用getSupportFragmentManager,如下所示,而不是从像FragmentActivity.getSupportFragmentManager()之类的静态上下文中调用

androidx.viewpager.widget.ViewPager viewPager = findViewById(R.id.viewPager);
        viewPager.setAdapter(new MyPagerAdapter(new FragmentActivity().getSupportFragmentManager()));

答案 3 :(得分:-1)

在静态方法中,将活动作为参数传递 -

private static void staticMethod(FragmentActivity activity /*Any other arguments*/) {
    FragmentManager fm = activity.getSupportFragmentManager();

    ....

}