2014-10-01 74 views
-1

設置適配器時出現錯誤,我只有一個文件夾用於佈局 和選項卡上的activity_main片段,我在許多網站中搜索但沒有結果。請幫忙!viewPager適配器空指針異常

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

    context = this; 
    mTitle = getTitle(); 
    navMenuTitle = getResources().getStringArray(R.array.titles); 

    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mSectionsPagerAdapter); //Null Pointer Exception 

    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
     @Override 
     public void onPageSelected(int position) { 
      actionBar.setSelectedNavigationItem(position); 
      getSupportActionBar().setTitle(navMenuTitle[position]); 
     } 
    }); 

這是SectionAdapter

public class SectionsPagerAdapter extends FragmentPagerAdapter { 

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

    @Override 
    public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a PlaceholderFragment (defined as a static inner class below). 
     switch(position){ 
     case 0: 
     return MainGenFragment.newInstance(position + 1); 
     case 1: 
      return new FragmentMyPwd(); 
     } 
     return null; 

    } 

    @Override 
    public int getCount() { 
     // Show 3 total pages. Now Changed to 2. 
     return 2; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     Locale l = Locale.getDefault(); 
     switch (position) { 
      case 0: 
       return getString(R.string.title_section1).toUpperCase(l); 
      case 1: 
       return getString(R.string.title_section2).toUpperCase(l); 
      //case 2: 
       //return getString(R.string.title_section3).toUpperCase(l); 
     } 
     return null; 
    } 
} 
+0

「SectionsPagerAdapter」的外觀如何?你確定ID'R.id.pager'是否是正確的,即屬於那個活動? – Trinimon 2014-10-01 18:28:37

+0

是的,我確定尋呼機 – TheMaystro2009 2014-10-01 18:35:21

回答

2

您需要在onCreate()添加setContentView(R.layout.yourlayout)。沒有這個,mViewPager將爲空,因爲它沒有在findViewById()找到。

+0

哦!我的上帝......真是遺憾......它已經開啓了評論,非常感謝你 – TheMaystro2009 2014-10-01 18:46:28