2016-09-22 2 views
-1

ビューページャーでスライドタブを取得するために、私は以下のinstructionsに従っています。ここでアンドロイドのビューページャでタブを設定するにはどうすればいいですか?

は私のonCreateメソッドである:ここでは

mViewPager.setAdapter(new NavigationPagerAdapter(getSupportFragmentManager())); 
mTabLayout.setupWithViewPager(mViewPager); 

は私のナビゲーションページャアダプタである:ここで

public static class NavigationPagerAdapter extends FragmentPagerAdapter { 
    private static final int NUM_ITEMS = 3; 

    public NavigationPagerAdapter(FragmentManager fragmentManager) { 
     super(fragmentManager); 
    } 

    // Returns total number of pages 
    @Override 
    public int getCount() { 
     return NUM_ITEMS; 
    } 

    // Returns the fragment to display for that page 
    @Override 
    public Fragment getItem(int position) { 
     switch (position) { 
      case 0: // Fragment # 0 - This will show FirstFragment 
       return new FeedFragment(); 
      default: 
       return null; 
     } 
    } 

    // Returns the page title for the top indicator 
    @Override 
    public CharSequence getPageTitle(int position) { 
     return "Page " + position; 
    } 
} 

は私のcontent_main.xml活動のレイアウトです:

<android.support.design.widget.TabLayout 
    android:id="@+id/navigation_sliding_tabs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:tabMode="scrollable"/> 

<android.support.v4.view.ViewPager 
    android:id="@+id/navigation_pager" 
    android:layout_width="match_parent" 
    android:layout_height="0px" 
    android:layout_weight="1"/> 

これは、コード実行時にエラーが発生する

java.lang.NullPointerException: Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on a null object reference 

エラーがページャアダプタにあるかどうかわかりませんが、フラグメントマネージャが問題を引き起こしているようです。

+1

'NUM_ITEMS = 3 'の、しかし、あなたが' 0 'の上に任意の' position'ために ')' 'のgetItem(中null'なのでを返すしているアダプタでこれを試してみてください。 –

+0

私は最良の方法は、アンドロイドスタジオを使用し、タブ付きの活動を選択するだろうと思う笑 – creativecreatorormaybenot

+1

そのリンクをもう一度読んでください。 switchステートメントでcase 1と2が間に合わなかった。それはヌルを防ぎます –

答えて

0

FeedFragment feedfragment; 
public NavigationPagerAdapter(FragmentManager fragmentManager) { 
    super(fragmentManager); 
    feedfragment=new FeedFragment(); 
} 

// Returns total number of pages 
@Override 
public int getCount() { 
    return NUM_ITEMS; 
} 

// Returns the fragment to display for that page 
@Override 
public Fragment getItem(int position) { 
Fragment fragment; 
    switch (position) { 
     case 0: // Fragment # 0 - This will show FirstFragment 
      fragment=feedfragment; 
      break; 
     return fragment; 

    } 
} 

// Returns the page title for the top indicator 
@Override 
public CharSequence getPageTitle(int position) { 
    return "Page " + position; 
} 
} 
+0

違いはありません。 @Muhib Pirani –

+0

@Tom Finet getItemメソッドで "return fragment"を追加する –

関連する問題