viewPager适配器空指针异常

时间:2014-10-01 18:25:13

标签: android

设置适配器时出错,我只有一个文件夹用于布局 以及activity_main上的标签片段,我在许多网站上搜索但没有结果。请帮忙!

    @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;
    }
}

1 个答案:

答案 0 :(得分:2)

您需要在setContentView(R.layout.yourlayout)中添加onCreate()。如果没有这个,mViewPager将为空,因为找不到findViewById()