为什么这段代码崩溃我完全根据谷歌的指导方针这样做,但我在行上得到一个空指针异常
final ActionBar actionBar = getActionBar();
这是完整的代码。我正在按照我在这里链接到的http://developer.android.com/training/implementing-navigation/lateral.html
的开发页面进行此操作 super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.pager_view);
//TabSetup
tabPagerAdapter = new TabPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(tabPagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
getActionBar().setSelectedNavigationItem(position);
}
});
final ActionBar actionBar = getActionBar();
assert actionBar != null;
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {
}
};
//ADD THE APP'S 3 TABS
actionBar.addTab(actionBar.newTab().setText("News").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Surveys").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Connect").setTabListener(tabListener));
}
答案 0 :(得分:2)
请注意,Android 5.0不推荐使用操作栏标签。
除此之外,您可能正在使用没有本机操作栏的主题,例如Theme.AppCompat
。如果您将appcompat-v7
与Theme.AppCompat
一起使用,请确保您继承ActionBarActivity
,然后使用getSupportActionBar()
代替getActionBar()
。