ActionBar不适用于api级别< 14

时间:2013-12-03 13:12:42

标签: android api android-actionbar android-viewpager

在我的应用程序中,我使用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));
        }

由于

2 个答案:

答案 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)及更高版本兼容。

http://developer.android.com/guide/topics/ui/actionbar.html