Как работает меню в Android

#android #android-layout #android-menu

#Android #android-макет #android-меню

Вопрос:

Я читаю разные сообщения, разные вещи и никогда не нахожу ответа. Я пытаюсь создать простое меню с надписью «…» в правом верхнем углу моего основного приложения Compatactivity.

Я создаю свой XML-файл

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

    >

    <item android:title="Settings"
        android:icon="@mipmap/ic_settings" android:id="@ id/MnuSettings"  />
</menu>
 

Я не могу добавить это меню в свой основной AppCompatActivity. Я пробую разные вещи.

Я делаю это в своей основной «деятельности по верстке».

  public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);
    }
 

Я стараюсь включить в свой основной макет …

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

Кто-нибудь может мне помочь, пожалуйста.

Нужно ли мне было создавать что-то в manifest.xml для меню. Нужно ли мне было что-то добавлять в xml моего файла макета?.. никогда не найдешь ответа .. 🙁

Комментарии:

1. androidhive.info/2011/09/how-to-create-android-menus и это developer.android.com/guide/topics/ui/menus . html и, вероятно, тысяча других

Ответ №1:

Предположим, что ваше меню вызвано xml menu_main . Измените его на следующее,

 <item android:title="Settings"
    android:icon="@mipmap/ic_settings" 
    android:id="@ id/MnuSettings"  
    android:title="Settings"
    app:showAsAction="never"/>
 

Затем измените onCreateOptionsMenu на это

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

Ответ №2:

Я нашел то, что искал, в приведенном ниже руководстве.

Мне не хватало панели инструментов в моей основной папке макета

 <android.support.v7.widget.Toolbar
    android:id="@ id/SettingToolBar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/AlertDialog.AppCompat.Light">
 

После этого мне понадобилось это в моем onCreate моей основной деятельности

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

Наконец
onCreateOptionsMenu(Menu menu) , будет вызван.

Учебник.

https://developer.android.com/training/appbar/setting-up.html