0

Ich habe die folgenden Fehler, während ich die FragmentPageAdapter aus statischem Kontext android Aufruf:nicht statische Methode getsupportfragmentmanager() nicht aus statischem Kontext verwiesen wird

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

Sie versuchen, diesen Code in einer statischen Methode zu verwenden, und der Fehler besagt, dass Sie nicht aus einem statischen Kontext auf nicht statische Methoden zugreifen können. Entfernen Sie also entweder das statische Wort aus Ihrer Methode oder denken Sie darüber nach, Ihren Code auf eine andere Weise zu refaktorieren, damit dieser Aufruf von einem Instanzkontext ausgeführt wird. –

+0

Ich weiß, aber aber hier statische Methode wurde benötigt, warum ich statische auf andere Weise setzen?, Danke @Orlangure –

+0

Dies ist ein schlechter Rat, aber Sie können eine statische Variable für Ihre Unterstützung Fragment Manager erstellen, einen Wert zuweisen in Ihrer nicht statischen Methode (onCreate?) und verwenden Sie sie als Referenz in einem neuen TabsPagerAdapter anstelle von getSupportFragmentManager() - Aufruf. Ich empfehle Ihnen dringend, dies nicht zu tun, aber auf diese Weise wird Ihr Code zumindest kompilieren. Versuchen Sie, Ihren Code umzuformatieren, um dieses Problem zu beheben, anstatt zu versuchen, es zu lösen. –

Antwort

-1

In Ihrer statischen Methode, übergeben Sie die Tätigkeit als Parameter -

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

    .... 

} 
0

nicht sicher, kann aus dem Code sein, das Sie geschrieben, aber es sieht aus wie Sie eine Variable ViewPager viewPager = ...; haben könnten, dass Sie mögen,anrufenan, aber versehentlich verwenden Sie Großbuchstaben V in ViewPager, die bewirkt, dass es eine Klassenmethode anstelle einer Instanzmethode aufruft.

-1
getActivity().getSupportFragmentManager(); 
Verwandte Themen