getSupportFragmentManager()无法解析方法

问题描述:

下面是我的主要活动类: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新手,不确定是否可以这么做?

但是,如果我没有一个类没有主要的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

你的类必须扩展AppCompatActivity而不是Activity访问getSupportFragmentManager()