Меню параметров Android не отображается

Я новичок в Android, и я пытался добавить простую кнопку добавления, как указано ниже

list_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:id="@+id/menu_insert"
        android:icon="@android:drawable/ic_menu_add"
        android:title="@string/menu_insert"              
    />     
</menu>

MyActivity.java

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.list_menu, menu);

        return true;  
    }

Я прочитал в серии книг "Манекены", что ic_menu_add уже есть в ресурсах, и мне не нужно его добавлять, но когда я запускаю этот код, он не отображается. Я попытался добавить пользовательский значок с тем же именем, но кнопка не существует. Может кто-нибудь помочь мне с этим, пожалуйста.

Ответ 1

Если вы используете фрагмент, вам это нужно в onCreate():

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

Ответ 2

Я имел дело с той же проблемой.. прочитал несколько запросов и документации.. Надеюсь, это может вам помочь.

Вот мой XML файл для меню.

<item
    android:id="@+id/action_send_feedback"
    android:orderInCategory="100"
    android:showAsAction="always"
    android:title="@string/action_send_feedback"/>

<item 
    android:id="@+id/action_share_app"
    android:orderInCategory="100"
    android:showAsAction="ifRoom"
    android:title="@string/action_share_app"
    android:icon="@drawable/ic_action_share" />

<item
    android:id="@+id/action_rate_app"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_rate_app"/>

Здесь указан код JAVA.

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

Для телефонов Android, у которых есть кнопка выбора (внизу телефона), появляется пункт меню, который отображается как "Приказ" = "никогда", когда кнопка нажата. Или они будут отображаться обычно в меню параметров панели действий..

Ссылка: http://developer.android.com/guide/topics/ui/menus.html#options-menu

Ответ 3

Не требуется вызов метода super(). Попробуйте заменить onCreateOptionsMenu на это:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.list_menu, menu);
    return true;
}

Ответ 4

Если вы установите TargetSDK в манифесте на 5, значок появится.

Если вы ориентируетесь на новый Android SDK (3.0 и выше), панель действий переходит в меню и по умолчанию не отображает значки.

Вы можете попробовать следующее:

Как показывать значки в меню переполнения ActionBar?

Ответ 5

Пропустили ли вы эти строки в файле xml файла один раз

XMLNS: инструменты = "http://schemas.android.com/tools"

инструменты: контекст = "MainActivity"

Если вы пропустили это, это вызывает проблемы при отображении меню параметров

Ответ 6

Привет надеюсь, что код ниже поможет вам:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primaryDark</item>
    </style>

Пожалуйста, укажите DarkActionBar в качестве темы, которую вы использовали в файле манифеста Android.

Ответ 7

Я столкнулся с этой проблемой. Но в моем случае я добавил панель инструментов внутри Framelayout. Кроме того, я добавил еще один вид прокрутки с соответствием родителя. Теперь ScrollView взял управление щелчком, а не панель инструментов. Так что если вы используете FrameLayout, ваша панель инструментов должна быть самой верхней.

Ответ 8

Добавить

app:showAsAction="always"

к пункту меню.

Ответ 9

Я должен был добавить следующий код в xml активности:

 <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:theme="@style/AppTheme"
        app:popupTheme="@style/Theme.AppCompat.Light.DarkActionBar"
        app:title="@string/app_name"
        app:titleMarginStart="24dp"
        app:titleTextColor="@android:color/white" />

Затем к активности.  OnCreate

Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

И

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    //super.onCreateOptionsMenu(menu);
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

И фрагмент по созданию:

 setHasOptionsMenu(true);