我从静态上下文android调用FragmentPageAdapter
时出现以下错误:
错误:非静态方法getSupportFragmentManager()不能 从静态上下文引用。
ViewPager.setAdapter(new TabsPagerAdapter(getSupportFragmentManager(),
myCategory, cxt));
ViewPager.setCurrentItem(ViewPager.getCurrentItem());
slidingTabLayout.setViewPager(ViewPager);
答案 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();
....
}