在我的应用程序中,我使用ViewPager和ActionBar,它需要api级别> 11。但是对于api级别11,12和13,它不起作用。
错误来自这一行(22):
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
错误是:
11-17 14:34:41.795: E/AndroidRuntime(472): Caused by: java.lang.NullPointerException
11-17 14:34:41.795: E/AndroidRuntime(472): at fr.carnet.free.ViewPagerActivity.onCreate(ViewPagerActivity.java:22)
其他代码:
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// For each of the sections in the app, add a tab to the action bar.
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab().setText(mSectionsPagerAdapter.getPageTitle(i)).setTabListener(this));
}
由于
答案 0 :(得分:2)
我假设您正在致电getActionBar()
以获取操作栏。
getActionBar()
的文档明确指出:
活动的ActionBar,如果没有,则为null。
此外,ActionBar
州的文件:
从Android 3.0(API级别11)开始,操作栏出现在 当活动使用系统时,活动窗口的顶部 Holo主题(或其后代主题之一),这是默认主题。 否则您可以通过调用添加操作栏 requestFeature(FEATURE_ACTION_BAR)或通过在自定义中声明它 windowActionBar属性的主题。
因此,如果您没有为自己的应用使用其中一个Holo主题,则可能需要致电requestFeature(FEATURE_ACTION_BAR)
以便为您的活动设置ActionBar
。
答案 1 :(得分:0)
ActionBar API最初是在Android 3.0(API级别11)中添加的,但它们也可以在支持库中找到,以便与Android 2.1(API级别7)及更高版本兼容。