2017-01-09 156 views
0

下面是我的主要活動類:getSupportFragmentManager()無法解析方法

public class MainActivity extends Activity { 
    private SectionsPagerAdapter mSectionsPagerAdapter; 
    private ViewPager mViewPager; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     //GETTING THE ERROR HERE 
     mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
     mViewPager = (ViewPager) findViewById(R.id.container); 
     mViewPager.setAdapter(mSectionsPagerAdapter); 

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(mViewPager); 
    } 

    public class SectionsPagerAdapter extends FragmentPagerAdapter { 

     public SectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      switch (position) { 
       case 0: 
        Master mView = new Master(); 
        return mView; 
       case 1: 
        Device dView = new Device(); 
        return dView; 
       default: 
        return null; 
      } 
     } 

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

     @Override 
     public CharSequence getPageTitle(int position) { 
      switch (position) { 
       case 0: 
        return "Master"; 
       case 1: 
        return "Device"; 
      } 
      return null; 
     } 
    } 
} 

我得到一個錯誤在該行稱mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());說無法解決方法getSupportFragmentManager。

我改變了基類MainActivity從ActivityFragmentActivity因爲getSupportFragmentManagerFragmentActivity的方法,但是是好的,如果我沒有一類,沒有擴展Activity類?我是Android新手,不確定是否可以這麼做?

回答

2

但是,如果我沒有一個類沒有主要的Activity類嗎?

FragmentActivity延伸Activity。因此,要擴展的主要Activity類,只是間接的。

+0

哦。我查了一下,並且因爲某種原因發現它沒有。感謝您的澄清。 – Bobby

+0

快速問題。你總是需要一個在Android項目中擴展Activity的類嗎? – Bobby

+1

@Bobby:「我查了一下,因爲某種原因發現它沒有」 - 如果你看[FragmentActivity JavaDocs](https://developer.android.com/reference/android/support/v4/應用程序/ FragmentActivity.html),第三行開頭「'延伸Activity'」。 「你總是需要,在Android項目中的正確的擴展活動一類?」 - 「總是」是一個強烈的字眼。 :-)通常,一個Android應用程序有一個或多個活動。有一些情況下,您可能沒有,但他們都非常少見(例如,寫一些其他的應用程序插件)。 – CommonsWare

0

你的類必須擴展AppCompatActivity而不是Activity訪問getSupportFragmentManager()