首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我要在android中获得actionbar空?

为什么我要在android中获得actionbar空?
EN

Stack Overflow用户
提问于 2015-08-24 08:14:36
回答 4查看 134关注 0票数 1

我正在尝试使用这个链接http://www.androidbegin.com/tutorial/implementing-fragment-tabs-in-android/在android中创建选项卡栏。

当我运行我的项目时,我在这一行上出现了错误。

ActionBar actionBar = getActionBar();

从这里获得空值并获得空指针异常,请告诉我如何删除此错误。

我要退房去安卓4.4.2

这里是我的代码

代码语言:javascript
复制
package com.androidbegin.fragmenttabstutorial;

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

public class MainActivity extends Activity {
    // Declare Tab Variable
    ActionBar.Tab Tab1, Tab2, Tab3;
    Fragment fragmentTab1 = new FragmentTab1();
    Fragment fragmentTab2 = new FragmentTab2();
    Fragment fragmentTab3 = new FragmentTab3();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ActionBar actionBar = getActionBar();

        // Hide Actionbar Icon
        actionBar.setDisplayShowHomeEnabled(false);

        // Hide Actionbar Title
        actionBar.setDisplayShowTitleEnabled(false);

        // Create Actionbar Tabs
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Set Tab Icon and Titles
        Tab1 = actionBar.newTab().setIcon(R.drawable.tab1);
        Tab2 = actionBar.newTab().setText("Tab2");
        Tab3 = actionBar.newTab().setText("Tab3");

        // Set Tab Listeners
        Tab1.setTabListener(new TabListener(fragmentTab1));
        Tab2.setTabListener(new TabListener(fragmentTab2));
        Tab3.setTabListener(new TabListener(fragmentTab3));

        // Add tabs to actionbar
        actionBar.addTab(Tab1);
        actionBar.addTab(Tab2);
        actionBar.addTab(Tab3);
    }
}

manifest.xml

代码语言:javascript
复制
<?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="13"
        android:targetSdkVersion="15" />
    <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

代码语言:javascript
复制
<resources>

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

</resources>
EN

回答 4

Stack Overflow用户

发布于 2015-08-24 08:24:29

要使用AppCompat主题,您在这一行中使用的parent="Theme.AppCompat.Light.DarkActionBar"必须从AppCompatActivity扩展您的活动

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
票数 0
EN

Stack Overflow用户

发布于 2015-08-24 08:26:23

尝试使用getSupportActionBar()而不是getActionBar()

票数 0
EN

Stack Overflow用户

发布于 2015-08-24 08:32:48

您必须定义各种样式以支持多个版本:

值-> styles.xml

代码语言:javascript
复制
<resources>
    <style name="AppTheme" parent="android:Theme.Light" />
</resources>

值-v11 -> styles.xml

代码语言:javascript
复制
<resources>
    <style name="AppTheme" parent="android:Theme.Holo.Light" />
</resources>

值-v14 -> styles.xml

代码语言:javascript
复制
<resources>
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar" />
</resources>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32177428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档