设置适配器时出错,我只有一个文件夹用于布局 以及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;
}
}
答案 0 :(得分:2)
您需要在setContentView(R.layout.yourlayout)
中添加onCreate()
。如果没有这个,mViewPager
将为空,因为找不到findViewById()
。