2017-01-09 12 views
0

を解決することはできません、私のメインのActivityクラスです: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; 
     } 
    } 
} 

私は方法getSupportFragmentManagerを解決することはできませんmSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());格言を言っ行でエラーを取得しています。

私はgetSupportFragmentManager以来ActivityからFragmentActivityにMainActivityの基本クラスを変更はFragmentActivityの方法ですが、私はActivityクラスを拡張しないクラスを持っていない場合、それはOKですか?私はAndroidには新しく、そうすることが大丈夫かどうかわからないのですか?

答えて

2

メインアクティビティクラス以外のクラスがない場合は、それはいいですか?

。したがって、間接的にメインのActivityクラスを拡張しています。

+0

ああ。私は点検し、何らかの理由でそれがそうでないことが分かった。説明をありがとう。 – Bobby

+0

簡単な質問。あなたは常にAndroidプロジェクトの 'Activity'を拡張する一つのクラスが必要ですか? – Bobby

+1

@Bobby:「確認して何らかの理由で見つからなかった」 - [FragmentActivity' JavaDocs](https://developer.android.com/reference/android/support/v4/)を見れば、 app/FragmentActivity.html)、3行目は「extends Activity'」で始まります。 「あなたは常にAndroidプロジェクトのアクティビティを拡張するクラスが1つ必要ですか?」 - 「常に」は強い言葉です。 :-)通常、Androidアプリには1つ以上のアクティビティがあります。何もないかもしれないシナリオがいくつかありますが、非常に珍しいことです(他のアプリのプラグインを書くなど)。 – CommonsWare

0

getSupportFragmentManager()にアクセスするには、Activityの代わりにAppCompatActivityのクラスを延長する必要があります。