如何在android中获取getActionBar对象?

时间:2015-08-24 10:53:04

标签: android android-layout android-intent

enter image description here 我想在android中获取getActionBar对象。我得到 null 值为什么? 这是我的主要java文件

package com.example.naveen.tabfragment;


import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;

public class MainActivity extends Activity {
    // Declare Tab Variable


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        ActionBar actionBar =getActionBar();


    }
}

应用程序gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.naveen.tabfragment"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
}

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.naveen.tabfragment" >

    <uses-sdk
        android:minSdkVersion="14"
     />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

style.xml 文件

<resources>

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

</resources>

我在这一行获得空值

ActionBar actionBar = getActionBar();

我正在使用android studio。并在MOTOE 4.4.2上进行测试

2 个答案:

答案 0 :(得分:2)

如果您使用支持库,则应使用 getSupportedActionBar()方法。 您还应该从支持的库中导入适当的类而不是正常的类。

答案 1 :(得分:1)

您的主题是 AppCompat ,因此您的扩展类必须是AppCompatActivity而不是活动。

如果您扩展AppcompatActivity类,请使用getSupportActionBar()代替getActionBar().

所以,最后

<强> ActionBar actionBar=getSupportActionBar ();

我希望它可以帮到你。