2014-12-29 2 views
0

내 액티비티에 간단한 FragmentPageAdapter가 있는데 제대로 작동합니다. 이제 BaseActivity 내에서 탐색 서랍을 구현했기 때문에 BaseActivity에서 확장하고 싶습니다. 따라서 FragmentActivity 클래스를 확장 할 수는 없으며 FragmentActivity 객체를 선언하려고 시도했지만 java.lang.IllegalStateException 오류가 항상 발생합니다. 작업이 삭제되었습니다. 이 문제를 어떻게 해결할 수 있습니까?FragmentPagerAdapter가 BaseActitvty와 함께 작동하지 않았습니다.

public class MainActivity extends BaseActivity { 

FragmentPagerAdapter adapterViewPager; 
FragmentActivity fa; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    FragmentActivity fa = new FragmentActivity(); 
    adapterViewPager = new MyPagerAdapter(fa.getSupportFragmentManager()); 

    ViewPager pager = (ViewPager) findViewById(R.id.viewPager); 
    pager.setAdapter(adapterViewPager); 
    pager.setAdapter(new MyPagerAdapter(fa.getSupportFragmentManager())); 


} 

private class MyPagerAdapter extends FragmentPagerAdapter { 

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

    @Override 
    public Fragment getItem(int pos) { 
     switch(pos) { 
     case 0: // Fragment # 0 - This will show FirstFragment 
      return SlideFragment.newInstance(0, "Page # 1"); 
     case 1: // Fragment # 0 - This will show FirstFragment different title 
      return SlideFragment.newInstance(1, "Page # 2"); 
     case 2: // Fragment # 1 - This will show SecondFragment 
      return SlideFragment.newInstance(2, "Page # 3"); 
     default: 
      return null; 
     } 
    } 

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

@Override 
protected int getLayoutResourceId() { 
    // TODO Auto-generated method stub 
    return R.layout.activity_main; 
} 



} 

답변

0

MainActivity에서 FragmentActivity 객체를 사용할 필요가 없습니다. BaseActivity 클래스에서 FragmentActivity를 확장하십시오.

0

수동으로 활동 개체를 만들지 마십시오. 당신은 항상 어떤 액티비티 클래스 안에 있습니다 (제대로 인스턴스화되었습니다). 필요한 것은 BaseActivity가 FragmentActivity를 확장하는 것입니다.

관련 문제