2014-10-01 68 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