2017-01-31 2 views
1

Я пытаюсь создать пункт меню выхода из верхней панели действий. Я выполнил следующие действия:Элементы меню, не отображаемые в Android-эмуляторе

1) Рез> правой кнопкой мыши> новый> Android каталог ресурсов> тип ресурса меню>> OK

2) щелкните правой кнопкой мыши на вновь созданную папку меню и выбран новый> файл> main_menu .xml

3) Исходя из этих Документов https://developer.android.com/guide/topics/resources/menu-resource.html, я добавил следующий XML в представлении main_menu.xml текста:

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

4) в режиме конструктора main_menu.xml, я перетащил пункт меню в меню. Я дал ему id, название и showAsAction, установленные всегда. Затем я вернулся к тексту вида и заметил следующий генерироваться:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:title="Logout" android:id="@+id/@+id/logout" android:showAsAction="always"/> 
</menu> 

5) Я установил идентификатор и заметил showAsAction он дает следующее сообщение:

Should use app:showAsAction with appcompat library with xmlns:app="schemas.android.com/apk/res-auto"'; 

Я побежал приложение и пункт меню никогда не появлялся.

Didding через исследования, я изменил XML к этому:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="schemas.android.com/apk/res-auto"> 
    <item android:id="@+id/action_settings" android:title="Logout" 
      android:orderInCategory="100" app:showAsAction="always"/> 
</menu> 

Я даже попытался добавить это к XML:

xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" 

Но пункт меню не отображается на экране MainActivity ,

+0

http://www.vogella.com/tutorials/AndroidActionBar/article.html – Donato

ответ

0

Вы должны надуть меню в методе onCreateOptionMenu деятельности: getMenuInflater() надуваться (R.menu.main_menu, меню)

+0

Эти две статьи были полезны для меня: 1) https://developer.android.com/studio/write/add- resources.html 2) http://www.vogella.com/tutorials/AndroidActionBar/article.html – Donato

0

Это также полезные заметки из этой статьи:.

Панель инструментов был введен в Android 5.0 (API 21). Если вы хотите, чтобы панель инструментов использовалась на устройствах с более ранней версией Android, вы можете использовать , используя, используя нижнюю панель, предоставленную библиотекой поддержки appcompat-v7.

Приложения с целевой версией SDK, меньшей, чем API 11, используют меню опций , если такая кнопка присутствует на устройстве. Если пользователь нажимает кнопку Option, отображается меню . Панель инструментов бар превосходит меню опций, так как панель действия явно отображается , а меню параметров отображается только по запросу.

Записи на панели инструментов обычно называются действиями. В то время как можно создавать записи в панели действий через код, обычно это , определенный в файле ресурсов XML. Каждое определение меню содержится в отдельном файле в папке res/menu. Инструмент Android автоматически создает ссылку на элементы меню в файле R, так что доступ к ресурсу меню может быть .

Класс MenuInflator позволяет раздувать действия, определенные в файле XML , и добавляет их в панель действий.С помощью функции getMenuInflator() из вашей активности можно получить доступ к менюInflator .

@Override public boolean onCreateOptionsMenu (меню меню) {
MenuInflater inflater = getMenuInflater();
inflater.inflate (R.menu.mainmenu, menu); return true; }

Если выбрано действие, вызывается метод onOptionsItemSelected() в соответствующем действии . Он принимает выбранное действие как параметр .

@Override общественного логический onOptionsItemSelected (MenuItem элемент) {
переключатель (item.getItemId()) {Вы можете изменить видимость панели инструментов во время выполнения. Следующий код демонстрирует это.

ActionBar actionBar = getActionBar(); actionBar.hide(); actionBar.show();

Смежные вопросы