0

я получил следующее сообщение об ошибке, когда я вызов FragmentPageAdapter из статического контекста андроида:не статический метод getsupportfragmentmanager() не может ссылаться из статического контекста

ERROR: non static method getSupportFragmentManager() cannot be referenced from static context .

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

Вы пытаетесь использовать этот код внутри статического метода, и по мере того как ошибка говорит, что вы не можете получить доступ к нестационарным методам из статического контекста. Так что либо удалите статическое слово из вашего метода, либо подумайте о том, как отредактировать свой код каким-либо другим способом, чтобы этот вызов выполнялся из контекста экземпляра. –

+0

Я знаю это, но здесь нужен статический метод, поэтому я ставил статический какой-либо другой способ, спасибо @Orlangure –

+0

Это плохая рекомендация, но вы можете создать статическую переменную для вашего менеджера фрагментов поддержки, присвоить ей значение в нестационарном методе (onCreate?) и использовать его в качестве ссылки в новом TabsPagerAdapter вместо вызова getSupportFragmentManager(). Я настоятельно рекомендую вам не делать этого, но таким образом ваш код по крайней мере будет компилироваться. Попробуйте реорганизовать свой код, чтобы избавиться от этой проблемы, а не пытаться ее решить. –

ответ

-1

В вашем статическом методе, передать деятельность как параметр -

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

    .... 

} 
0

не может быть уверен, что из кода вы в курсе, но это выглядит, как вы могли бы иметь переменную ViewPager viewPager = ...;, что вы хотите позвонить setAdapter(...), но случайно используйте верхний регистр V в viewPager, который заставляет его вызывать метод класса вместо метода экземпляра.

-1
getActivity().getSupportFragmentManager(); 
Смежные вопросы