2012-11-10 52 views
1

我有一個部分是我的類,它用於處理爲FragmentPagerAdapter加載哪些片段。現在它加載碎片就好了,但現在我想實現一個FragmentActivity,我有一個問題,如何創建它,因爲我不能使用「newinstance」,因爲它的Activity類型,並且在它之上,我不知道如何調用FragmentActivity與通過「newinstance」方法加載Fragment不同。我的第二個選項卡是我想要擴展到FragmentActivity的那個選項卡。如何在FragmentPagerAdapter中實現FragmentActivity?

public class SectionsPagerAdapter extends FragmentPagerAdapter { 
    private Context _context; 
    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
     _context= getApplicationContext(); 
    } 

    @Override 
    public Fragment getItem(int i) { 

     Fragment f = new Fragment(); 

     switch(i){ 
     case 0: 
      f=News.newInstance(_context); 
      break; 
     case 1: 
      f=Info.newInstance(_context); 
      break; 
     case 2: 
      f=Files.newInstance(_context); 
      break; 
     case 3: 
      f=Donate.newInstance(_context); 
      break; 
     } 
     /* 

     Fragment fragment = new DummySectionFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1); 
     fragment.setArguments(args); 

     */ 
     return f; 
    } 

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

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position) { 
     case 0: return getString(R.string.title_section1).toUpperCase(); 
     case 1: return getString(R.string.title_section2).toUpperCase(); 
     case 2: return getString(R.string.title_section3).toUpperCase(); 
     case 3: return getString(R.string.title_section4).toUpperCase(); 
     } 
     return null; 
    } 
} 

我的猜測是,我不能使用的GetItem方法爲只切換片段,並且我將不得不使用這樣的:

FragmentTransaction ft = fm.beginTransaction(); 
      ft.add(R.id.fragment_content, new BasicFragment()); 
      ft.commit(); 

有人可以幫我指出了正確的方向?

回答

0

有人可以幫我指出正確的方向嗎?

這不支持。 FragmentPagerAdapter當然是不可能的,它僅適用於碎片。

+0

我同意,我認爲你需要將你的FragmentActivity轉換成片段。 – conor

+0

但活動必須是FragmentActivity,因爲需要設置的東西只有在您將其擴展到FragmentActivity – user1811306

+0

@ user1811306時纔有可能:您不能將活動放入「ViewPager」中。 *包含* ViewPager的活動可以是'FragmentActivity',如果'ViewPager'包含片段,則需要成爲'FragmentActivity'。 – CommonsWare