Подтвердить что ты не робот

Панель действий не отображается

Я попытался реализовать панель действий в своем приложении.

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>

И созданное меню

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

enter image description here

Но он не отображает панель действий, даже если minSdkVersion равно 11. В чем причина?

4b9b3361

Ответ 1

Удалите свою тему для активности вашего действия в файле androidManifest. Теперь это сработает...

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

Не добавляйте тему в файл манифеста приложения. Если вы добавили его, удалите его и попробуйте запустить его...

Ответ 2

Вы должны установить стиль своей деятельности на Theme.Holo или один из вариантов для отображения ActionBar. Если вы хотите сохранить обратную совместимость, вызовите setTheme в onCreate вашей деятельности:

setTheme(android.R.style.Theme_Holo);

Ответ 3

Приложение с манифестом вроде этого

<?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;
    }
}

Похоже на это.

enter image description here

Вы уверены, что ваш телефон или эмулятор работает под управлением Android 3.0 или выше? Если нет, вы получите скриншот.

Чтобы включить панель действий на старых устройствах, вы должны использовать библиотеку AppCompat/support (https://developer.android.com/tools/support-library/features.html)

Ответ 4

    android:allowBackup="true"
    android:icon="@drawable/ic2"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 

это работает. Поместите его в свой

Ответ 5

Я импортирую 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'
}