2016-12-24 5 views
0

これまでのところ、FragmentsをスワップするMainActivityがありました。しかし、ViewPagerを使用してFragmentsにスワップするために、FragmentActivityを実装しました。フラグメントアクティビティを開始するときにナビゲーションペインを保存

しかし、ViewPagerを作成する引き出しのアイテムをクリックすると、引き出しがすべて一緒に消えます。

private Fragment checkFragment(int itemId) { // Checks what item the user has pressed and calls the right Fragment/Activity 
    Fragment fragment = null; 

    switch (itemId) { 
     // HOME (If user clicks on HOME in Drawer) 
     case R.id.nav_home:   
      fragment = new Home(); // Set Fragment to be used 
      break; 
     // STATS GENERAL (If user clicks on General Stats) 
     case R.id.nav_stat_general: 
      startActivity(new Intent(this, GeneralStatistics.class)); // Start the Fragment Activity 
      fragment = null; 
      break;  
    } 
    return fragment; 
} 

そして、ここで私のFragment ActivityonCreate方法である:ここで

は、私は私のFragmentActivityを開始する方法です

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.statistics_general); 

    mStatisticsPagerAdapter = new StatisticsPagerAdapter(getSupportFragmentManager()); 
    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mStatisticsPagerAdapter); 
} 

は、どのように私は別のActivityから行っているにもかかわらず、私の引き出しを保つこと?

+0

は、私はあなたがの範囲を変更することができますGeneralStatisticsクラスをアクティビティではなくフラグメントに変換する –

+0

最初のコードスニペットでフラグメントを呼び出す方法を変更しましたが、引き出しが表示されません –

+0

スニペットの意味は? –

答えて

0

ナビゲーション用の引き出しを保持します。ビューページのコンテンツを別のFragmentに置き換える必要があります。

明確にこのライン

startActivity(new Intent(this, GeneralStatistics.class)); 

あなたのコードから、あなたは別のアクティビティ(ないあなたのviewpagerコンテンツを置き換えるフラグメント)にIntentingされていることを示して

私はあなたがこれを見て取ることをお勧めしますExample。私の問題への周りの

0

ソリューション/仕事:

私はもうActivityFragmentを使用しますが、単純にFragmentを、交換していないその次とonCreate

@Override 
public View onCreateView(LayoutInflater inflater, 
         ViewGroup container, Bundle savedInstanceState) { 

    view = inflater.inflate(R.layout.statistics_general_vp, container, false); 
    // No more setContentView 

    mViewPager = (ViewPager) view.findViewById(R.id.pager); 
    mStatisticsPagerAdapter = new StatisticsPagerAdapter(getActivity().getSupportFragmentManager()); 
    mViewPager.setAdapter(mStatisticsPagerAdapter); 

    return view; 
} 
関連する問題