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从Activity
到FragmentActivity
因为getSupportFragmentManager
是FragmentActivity
的方法,但是是好的,如果我没有一类,没有扩展Activity
类?我是Android新手,不确定是否可以这么做?
答
但是,如果我没有一个类没有主要的Activity类吗?
FragmentActivity
延伸Activity
。因此,要扩展的主要Activity
类,只是间接的。
答
你的类必须扩展AppCompatActivity
而不是Activity
访问getSupportFragmentManager()
。
哦。我查了一下,并且因为某种原因发现它没有。感谢您的澄清。 – Bobby
快速问题。你总是需要一个在Android项目中扩展Activity的类吗? – Bobby
@Bobby:“我查了一下,因为某种原因发现它没有” - 如果你看[FragmentActivity JavaDocs](https://developer.android.com/reference/android/support/v4/应用程序/ FragmentActivity.html),第三行开头“'延伸Activity'”。 “你总是需要,在Android项目中的正确的扩展活动一类?” - “总是”是一个强烈的字眼。 :-)通常,一个Android应用程序有一个或多个活动。有一些情况下,您可能没有,但他们都非常少见(例如,写一些其他的应用程序插件)。 – CommonsWare