getActionBar()始终返回null

时间:2015-08-08 01:38:05

标签: android android-layout android-actionbar

我在Stackoverflow中经历了很多类似的帖子,但似乎没有解决我的问题。

我正在尝试获取ActionBar并调用setDisplayHomeAsUpEnabled(true)

我可以看到黑色的ActionBar(主题是黑色背景),活动名称显示为标题。但是在我的活动代码中,如果我尝试getActionBar(),它总是返回null。

我尝试了onResume()onCreate()中的代码(在充气布局之后)。它到处都返回null。有什么我想念的吗?

的AndroidManifest.xml

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".ActivityMain"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这是我的样式定义。我正在使用Theme.AppCompat.Light.DarkActionBar主题

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
</style>

另外,我使用以下依赖:

    compile 'com.android.support:support-v4:22.1.0'
    compile 'com.android.support:appcompat-v7:22.2.0'

我的活动类定义是:

MainActivity extends AppCompatActivity

2 个答案:

答案 0 :(得分:3)

尝试使用getSupportActionBar()。最新的appcompat-v7似乎禁用了该系统。

答案 1 :(得分:2)

如果您的课程辩护是MainActivity extends AppCompatActivity,您应该尝试使用getSupportActionBar()

如果您的课程辩护是MainActivity extends Activity,您可以尝试使用getActionBar()(此调用需要API 11)