34

我试图在我的应用程序中实现一个操作栏。

菜单.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/itemAdd"
        android:showAsAction="ifRoom|withText"
        android:title="ADD">
    </item>
    <item
        android:id="@+id/itemRefresh"
        android:showAsAction="ifRoom|withText"
        android:title="REFRESH">
    </item>
    <item
        android:id="@+id/itemHelp"
        android:title="HELP">
    </item>

</menu>

并创建菜单

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

在此处输入图像描述

但是即使minSdkVersion是11也没有显示动作栏。这是什么原因?

4

7 回答 7

84

在 androidManifest 文件中删除操作栏活动的主题。现在它将起作用...

<application
    android:allowBackup="true"
    android:icon="@drawable/tasktodo"
    android:label="@string/app_name"
    >

不要在应用程序清单文件中添加任何主题。如果您添加了一个,请删除并尝试运行它...

于 2013-07-29T09:13:25.713 回答
6

在您的班级中将 Activity 更改为 AppCompatActivity。如果您想快速添加它,那应该是最简单的。我将为刚接触 Android OS 的人添加代码:

public class YourActivity extends Activity 

进入

public class YourActivity extends AppCompatActivity
于 2018-02-05T20:26:14.670 回答
5

您必须将 Activity 的样式设置为Theme.Holo或其变体之一才能显示 ActionBar。如果您想保持向后兼容性,请在 Activity 的 onCreate 中调用 setTheme:

setTheme(android.R.style.Theme_Holo);
于 2013-07-29T09:13:30.667 回答
5

像这样带有 Manifest 的应用程序

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.Actionbartest"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="11" />
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="MyActivity"
                  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>

Menu.xml 像这样

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
            android:id="@+id/itemAdd"
            android:showAsAction="ifRoom|withText"
            android:title="ADD">
    </item>
    <item
            android:id="@+id/itemRefresh"
            android:showAsAction="ifRoom|withText"
            android:title="REFRESH">
    </item>
    <item
            android:id="@+id/itemHelp"
            android:title="HELP">
    </item>
</menu>

像这样的活动

package com.example.Actionbartest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }
}

看起来像这样。

在此处输入图像描述

您确定您的手机或模拟器运行的是 Android 3.0 或更高版本吗?如果没有,您将得到您的屏幕截图。

要在旧设备上启用 Actionbar,您应该使用 AppCompat/support 库 ( https://developer.android.com/tools/support-library/features.html )

于 2013-07-29T09:18:32.163 回答
2
    android:allowBackup="true"
    android:icon="@drawable/ic2"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 

这行得通。把它放在你的

于 2015-09-04T12:39:08.253 回答
2

我进口import android.support.v7.app.AppCompatActivity;

然后编辑为public class MainActivity extends AppCompatActivity

添加到依赖项

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.0.0'
}
于 2016-11-09T04:46:50.823 回答
0
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" ... >

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".MyActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!-- Put the RTA label here ... -->
            <meta-data android:name="RTA" android:value="RTA-5042-1996-1400-1577-RTA" />

        </activity>
    </application>
</manifest>
于 2021-11-26T08:08:10.397 回答