создание бокового меню android studio

Создание бокового меню android studio

В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Создайте новый проект на основе Empty Activity и запустите его. Никакого меню пока нет.

Создадим несколько строковых ресурсов в файле res/values/strings.xml, которые будут отвечать за пункты меню:

Откроем файл MainActivity. Сейчас в нём только один метод onCreate(). Добавим новый метод onCreateOptionsMenu(). Именно данный метод отвечает за появление меню у активности. Сразу после метода onCreate() начинайте вводить первые символы метода и дальше студия сама покажет список подходящих методов.

создание бокового меню android studio. menu8. создание бокового меню android studio фото. создание бокового меню android studio-menu8. картинка создание бокового меню android studio. картинка menu8. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Найдите нужный метод и заготовка будет создана автоматически.

Добавляем в заготовку метод, который берёт данные из ресурсов меню и преобразует их в пункты меню на экране.

В методе inflate() вы указываете ресурс меню (R.menu.menu_main) и объект класса Menu.

Запустите проект. Теперь в правой части заголовка вы увидите значок из трёх точек, выстроенных в вертикальную линию. Нажмите на значок, чтобы увидеть пункт меню Settings.

создание бокового меню android studio. menu1. создание бокового меню android studio фото. создание бокового меню android studio-menu1. картинка создание бокового меню android studio. картинка menu1. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Как не трудно догадаться, элемент item отвечает за отдельный пункт меню. Добавим ещё три пункта по такому же принципу, меняя только идентификатор и текст для меню:

Запустите проект и попробуйте снова вызвать меню. Вы увидите три новых пункта.

создание бокового меню android studio. menu2. создание бокового меню android studio фото. создание бокового меню android studio-menu2. картинка создание бокового меню android studio. картинка menu2. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Параметры id и title не нуждаются в объяснениях. Параметр orderInCategory позволяет задать свой порядок вывода пунктов меню. Предположим вы создали пять пунктов меню, но пока не определились с порядком их вывода на экране. Чтобы не перемещать постоянно целые блоки кода для пунктов меню в нужном порядке, можно воспользоваться данным параметром.

И, наконец, важный атрибут app:showAsAction определяет поведение меню в ActionBar. Значение never означает, что элемент меню не должен выводиться в заголовке, а только в всплывающем меню, т.е. находиться за тремя точками. Если вы установите значение always, то пункт Settings сразу появится в заголовке вашего приложения. Также доступны значения ifRooms, withText и collapseActionView. Попробуйте самостоятельно. Например, ifRoom выводит пункт меню, если позволяет место. Если пунктов будет много, то они будут только мешаться. Как правило, в таком варианте выводят очень короткое слово или значок для частых операций, чтобы избежать лишнего щелчка на три точки.

Обратите внимание на атрибут app:showAsAction, который относится к пространству имён xmlns:app=»http://schemas.android.com/apk/res-auto». Было время, когда такого пространства имён не существовало и в проектах использовался атрибут android:showAsAction из стандартного пространства имён. Если студия будет ругаться на ошибку, то отредактируйте код.

Пока пункты меню не выполняют полезной работы. Любое нажатие на пункт просто закрывает меню без видимых последствий. Мы ещё не написали код для обработки нажатий.

Выбор пунктов меню

Мы научились создавать меню. Но пока оно бесполезно, так как пункты меню никак не реагируют на наши нажатия. Для обработки нажатий пунктов меню служит другой метод onOptionsItemSelected(). Добавим метод по такому же принципу, как для предыдущего примера. Получим заготовку.

Параметр item отвечает за пункт меню. Вам следует получить идентификатор меню через метод getItemId() и указать для него код (в Kotlin вместо метода используется свойство itemId). Так как обычно меню состоит из нескольких пунктов, то удобно использовать конструкцию when. Для вывода информации воспользуемся текстовой меткой. Добавьте на экран активности компонент TextView. Можете использовать имеющийся TextView с надписью «Hello World!», только присвойте ему идентификатор.

Добавим код в заготовку для выбранного пункта меню:

Запустите приложение, вызовите меню и выберите любой пункт меню. В текстовом поле должно появиться сообщение.

создание бокового меню android studio. menu4. создание бокового меню android studio фото. создание бокового меню android studio-menu4. картинка создание бокового меню android studio. картинка menu4. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Переключатели

Внешний вид пунктов меню можно изменить на вид с переключателями. Для этого нужно добавить элемент group с атрибутом android:checkableBehavior=»single»:

создание бокового меню android studio. menu5. создание бокового меню android studio фото. создание бокового меню android studio-menu5. картинка создание бокового меню android studio. картинка menu5. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Большого смысла в этом режиме я не вижу. И рассматривать его не будем.

Режим Design

В Android Studio 2.2 добавили графический режим построения меню, которых похож на панель инструментов для добавления новых компонентов на экран. У меню панель состоит из четырёх элементов: Menu Item, Search Item, Menu, Group.

создание бокового меню android studio. menu6. создание бокового меню android studio фото. создание бокового меню android studio-menu6. картинка создание бокового меню android studio. картинка menu6. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Принцип тот же, выбираете нужный элемент и перетаскиваете его на экран в область меню. Если вы изучили ручное создание меню, то данный способ не вызовет у вас затруднений. С его помощью можно быстро набросать структуру меню, а затем подправить вручную.

Итак, вы получили базовые навыки работы с меню, достаточных для большинства случаев. Если хотите узнать больше, то почитайте дополнительную информацию о меню в разделе Теория.

Пример на Java

Код на Java не сильно отличается. Создание элементов меню на XML остаётся без изменений. Осталось только написать кода в классе активности.

Выберите в студии меню Code | Override Methods. и в следующим окне начинайте вводить название метода по первым буквам. Можно вводить по первым заглавным буквам, т.е. ocom (onCreateOptionsMenu), чтобы быстро найти нужную строку. Нажимаем кнопку OK и получаем заготовку.

создание бокового меню android studio. menu3. создание бокового меню android studio фото. создание бокового меню android studio-menu3. картинка создание бокового меню android studio. картинка menu3. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Добавляем в заготовку метод, который берёт данные из ресурсов меню и преобразует их в пункты меню на экране.

Добавим код в заготовку для выбранного пункта меню:

Запустите приложение, вызовите меню и выберите любой пункт меню. В текстовом поле должно появиться сообщение.

Существует альтернативный способ через XML, похожий на обработку щелчков кнопки (начиная с Android 3.0). Вы можете добавить атрибут android:onClick в ресурсах меню, и вам не нужно использовать вызов метода onOptionsItemSelected(). При помощи android:onClick вы можете указать нужный метод при выборе пункта меню. Добавьте данный атрибут к пункту Settings

Теперь в коде активности напишем следующее:

Источник

Создание бокового меню android studio

Определение меню в xml

создание бокового меню android studio. menu1. создание бокового меню android studio фото. создание бокового меню android studio-menu1. картинка создание бокового меню android studio. картинка menu1. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

создание бокового меню android studio. menu2. создание бокового меню android studio фото. создание бокового меню android studio-menu2. картинка создание бокового меню android studio. картинка menu2. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

создание бокового меню android studio. menu3. создание бокового меню android studio фото. создание бокового меню android studio-menu3. картинка создание бокового меню android studio. картинка menu3. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

По умолчанию этот файл определяет один пустой элемент menu:

Изменим содержимое файла, определив несколько пунктов:

Элемент включает следующие атрибуты, которые определяют его внешний вид и поведение:

android:id : уникальный id элемента меню, который позволяет его опознать при выборе пользователем и найти через поиск ресурса по id

android:icon : ссылка на ресурс drawable, который задает изображение для элемента ( android:icon=»@drawable/ic_help» )

android:title : ссылка на ресурс строки, содержащий заголовок элемента. По умолчанию имеет значение «Settings»

android:orderInCategory : порядок следования элемента в меню

Наполнение меню элементами

Запустим приложение по умолчанию и нажмем на кнопку меню в правом верхнем углу:

создание бокового меню android studio. menu4. создание бокового меню android studio фото. создание бокового меню android studio-menu4. картинка создание бокового меню android studio. картинка menu4. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Обработка нажатий в меню

Для вывода выбранного элемена меню в файле activity_main.xml определим текстовое поле с >

И изменим класс MainActivity:

создание бокового меню android studio. menuitems. создание бокового меню android studio фото. создание бокового меню android studio-menuitems. картинка создание бокового меню android studio. картинка menuitems. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Стоит отметить, что в данном случае, если наша задача заключалась, чтобы просто в выводе текста выбранного пункта меню, то мы вместо конструкции switch просто могли написать так:

Программное создание меню

Например, изменим код MainActivity :

Использованная версия метода add() принимает заголовок для пункта меню.

Источник

Создание бокового меню android studio

Навигация в приложении

Для работы с навигацией между экранами в Android-приложении применяется библиотека Navigation Component. Она входит в набор Android Jetpack и помогает реализовать навигацию, от простых нажатий на кнопки до более сложных, таких как панели приложений (action bars) и панель навигации (navigation drawers).

Библиотека предоставляет ряд преимуществ:

В качестве примера будет использоваться готовый проект, в котором уже есть все необходимые экраны, их макеты и исходные коды. Необходимо будет лишь разобраться с навигацией между экранами.

Тестовое приложение представляет собой мини-викторину. Оно будет иметь несколько экранов:

Стартовый проект с приложением содержит все эти экраны, но не содержит связей между ними, их создание будет рассмотрено далее. Каждое описанный экран — это фрагмент. Фрагмент — особый компонент системы Android. Прежде чем начать разбираться с навигацией по фрагментам, нужно разобраться с тем, что это такое.

Фрагмент (класс Fragment ) предоставляет часть пользовательского интерфейса в активности ( Activity ). Активности могут содержать как несколько фрагментов внутри себя, так и один фрагмент. Обычно несколько фрагментов в одной активности располагают при разработке приложения для планшетов, когда для меню навигации и для основного контента выделяются отдельные фрагменты, располагающиеся на экране одновременно.

создание бокового меню android studio. fragments. создание бокового меню android studio фото. создание бокового меню android studio-fragments. картинка создание бокового меню android studio. картинка fragments. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Фрагменты имеют свой отдельный жизненный цикл и самостоятельно отдельно от активностей занимаются обработкой событий ввода.

Для добавления фрагмента в активность необходимо описать тег в макете активности.

Именно фрагменты чаще используются в качестве компонентов, описывающих экраны приложения, располагаясь в одной или паре активностей, в зависимости от задач приложения. Фрагменты позволяют настраивать боковые панели навигации (navigation drawer) и ActionBar-меню. Фрагменты упрощают вопрос навигации и передачи данных между экранами приложения. Также создание фрагментов — наиболее выгодно с точки зрения траты ресурсов системы, чем создание активностей.

Перейдем к вопросам реализации навигации между экранами приложения.

Прежде всего необходимо выделить три основные принципа навигации:

Сперва необходимо скачать и собрать стартовый проект trivia-starter-code. Стартовый проект уже содержит почти все необходимые фрагменты (кроме одного), все необходимые макеты, создавать их не нужно. Необходимо сосредоточиться исключительно на навигации.

Добавление нового фрагмента

Определение метода onCreateView() должно выглядеть следующим образом:

После запуска приложения на экране отобразится содержимое TitleFragment — начальный экран с логотипом и кнопкой «Play». По нажатию на кнопку ничего не выполняется.

Добавление перехода от одного экрана к другому

Для реализации непосредственно навигации между экранами необходимо добавить зависимость от библиотеки Navigation Component, и создать файл с графом навигации.

1. Добавление зависимости Navigation Components:

Для добавления зависимости необходимо сперва добавить переменную version_navigation в блок ext в Gradle-файл проекта. Далее эта переменная будет использоваться для добавления зависимости конкретной версии, избавляя от дублирования номера версии в нескольких местах.

Добавление непосредственно зависимостей в Gradle-файл модуля app :

2. Добавление графа навигации:

3. Замена TitleFragment на NavHostFragment в активности:

4. Добавление фрагментов на граф навигации:

Для редактирования навигации используется редактор навигации. Он так же как и редактор макетов имеет два режима (две вкладки): Design и Code. Первый позволяет использовать элементы интерфейса IDE для редактирования графа навигации, второй предоставляет доступ к исходному XML-файлу графа. Кроме этого еще есть вкладка Split, которая делит рабочую область на две части: в одной код, во второй — графическое представление.

Реализация обработчика будет выглядеть следующим образом:

Манипуляции со стеком фрагментов

Если пользователь на экране «Game Over» нажмет на системную кнопку «Назад», то вернется к экрану с игрой, где будет написан последний вопрос, а это является некорректным поведением. Для пользователя логичным было бы попасть на начальный экран, а для этого необходимо удалить фрагмент GameFragment из стека фрагментов. Такое поведение можно реализовать следующим образом.

1. Настройка поведения системной кнопки «Назад»:

2. Добавление обработчика для кнопок на GameOverFragment и GameWonFragment :

3. Добавление кнопки «Назад» на Action Bar:

Далее необходимо переопределить метод активности onSupportNavigateUp() :

Если запустить приложение, можно убедиться, что кнопка «Назад» на Action Bar отображается и работает она аналогично системной кнопке «Назад.

Action Bar может содержать собственное меню. Обычно меню помечается кнопкой в виде трех вертикальных точек.
В случае приложения «Trivia» меню будет содержать один пункт «About», открывающий отдельный экран с информацией о приложении. Фрагмент AboutFragment уже создан.

1. Добавление фрагмента AboutFragment на граф навигации:

Для добавления возможности перехода к экрану «About» необходимо сперва добавить его на граф навигации.

2. Создание нового ресурса menu :

В меню необходимо добавить новый элемент Menu Item.
На панели атрибутов указать:

3. Добавление меню на Action Bar фрагмента TitleFragment :

4. Реализация обработчика нажатия на элемент меню:

Метод NavigationUI.onNavDestinationSelected() выполняет навигацию к фрагменту по идентификатору меню. Именно для этого идентификаторы фрагмента и меню, по которому к фрагменту нужно перейти, важно указывать одинаковыми.

Иногда перед разработчиком может встать задача передачи данных между экранами приложения и для этого в Android есть удобный механизм. SafeArgs — это Gradle-плагин, позволяющий реализовать передачу данных между фрагментами.

1. Добавление зависимости SafeArgs:

Сперва необходимо добавить зависимость от библиотеки SafeArgs в Gradle-файл проекта (не модуля app ).

После включения плагина необходимо очистить и пересобрать проект, чтобы компилятор сгенерировал «Directions»-классы, содержащие информацию о навигации между фрагментами (по типу идентификаторов action_gameFragment_to_gameWonFragment ), а также позволяющие организовать передачу данных между фрагментами.

2. Использование «Directions»-классов:

После того, как «Directions»-классы сгенерированы, можно заменить использование ссылок на идентификаторы навигации на использование этих классов.

По такому же принципу выполняется замена в остальных местах.

3. Добавление аргументов в редакторе навигации:

Для добавления описания параметров необходимо перейти в редактор навигации, выбрать gameWonFragment и добавить аргументы в разделе «Arguments» панели «Attributes».

После этого сборка проекта будет невозможно, поскольку вызов GameFragmentDirections.actionGameFragmentToGameWonFragment() будет требовать входных параметров, которые только что были описаны.

4. Передача данных фрагменту:

Параметры numQuestions и questionIndex определяют общее число вопросов и индекс текущего вопроса, а в случае с выигрышем — это и число правильных ответов.

Теперь проект успешно собирается, данные передаются, но никак не принимаются и не обрабатываются.

5. Обработка полученных данных:

Еще одним из основных элементов для навигации между экранами является боковое меню, также оно называется Navigation Drawer.
Далее будут рассмотрены шаги по добавлению бокового меню.

1. Добавление зависимости от библиотеки Material:

Navigation Drawer является частью библиотеки Material, поэтому ее необходимо включить в Gradle-файл:

2. Добавление XML-файла бокового меню:

Далее необходимо добавить XML-файл ресурса с описанием элементов бокового меню, аналогично тому, как это было сделано для ActioBar-меню. Файл будет называться navdrawer_menu.xml и будет содержать один элемент «About». Элемент меню должен иметь следующие атрибуты:

3. Добавление бокового меню на макет MainActivity :

Для возможность использования Navigation Draver необходимо добавить компонент DrawerLayout в активность и поместить внутрь этого компонента весь контент активности.

4. Инициализация и настройка Navigation Drawer:

Для инициализации и настройки работы Navigation Drawer необходимо сперва создать поле drawerLayout и инициализировать его в методе onCreate() :

Для отображения кнопки бокового меню на Action Bar необходимо добавить экземпляр drawerLayout в качестве третьего параметра вызова NavigationUI.setupActionBarWithNavController() :

Для добавления возможности навигации, т.е. перехода к экрану «About» при нажатии на соответствующие элемент бокового меню, необходимо добавить вызов NavigationUI.setupWithNavController() с передачей NavController и элемента NavigationView в качестве параметров:

В этом случае drawerLayout будет использоваться, если пользователь находится на последнем фрагменте в стеке. А navController будет использоваться для навигации в остальных случаях.

Интент — это объект, содержащий в себе запрос на выполнение некоторого действия.
Интент может включать в себя следующие компоненты:

Наиболее распространённый сценарий использования интентов — запуск другой активности. При этом это может быть как запуск активности собственного приложения, так и стороннего, например, открытие галереи, приложения почты или камеры и т.д.

Существует два вида интентов: явные (explicit) и неявные (implicit).

Explicit-интенты используются для перехода к активности в рамках собственного приложения. Они требуют указания полного имени класса для выполнения действия

Первый параметр в конструкторе класса Intent — ссылка на контекст (в данном случае на активность, из которой выполняется вызов).
Второй параметр — полное имя класса второй активности, которую необходимо открыть.

Также при переходе к другой активности можно поместить в интент некоторые данные.

Для получения значения из интента внутри SecondActivity необходимо вызвать:

Implicit-интенты используются для открытия сторонних активностей сторонних приложений и выполнения каких-либо действий.
Примеры: открытие приложения почты для написания нового письма и передача в него определенного текста; открытие приложения камеры для создания снимка и получения его в рамках приложения; открытие браузера с сайтом по определенной ссылке.

Для создания implicit-интента необходимо указать три параметра:

Примеры констант ACTION:

Примеры констант CATEGORY:

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

Добавление функции «Share» с использованием интента

Для демонстрации работы implicit-интентов будет добавлен функционал «Поделиться» с возможностью отправки данных, через сторонние приложения типа почтового клиента или мессенджера. В качестве сообщения будет использоваться добавленное ранее сообщения о количестве правильных ответов и общем числе вопросов.

1. Настройка отображения меню на GameWonFragment :

2. Добавление метода для создания интента:

3. Обработка нажатия на меню «Share»:

Для обработки нажатия необходимо переопределить метод onOptionsItemSelected и по нажатию на пункт меню «Share» вызывать системную активность, передавая ей созданный интент.

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

Если убрать установку типа «text/plain» для интента и запустить приложение снова, то после нажатия на пункт меню «Share» приложение упадет с сообщением о том, что активность для данного действия не найдена.

4. Добавление проверки на доступность активности:

Для того, чтобы решить проблему с падением, необходимо добавить проверку на доступность существующей активности для созданного интента. Если активности необходимой для интента нет в системе, то пункт меню «Share» логично будет скрыть.

Источник

Полный список

— создаем пункты меню

Что такое меню, думаю, нет смысла рассказывать. Оно отображается при нажатии кнопки Menu. Давайте создадим свое.

11.12.2017 Кнопки меню обычно уже нет на современных устройствах. Меню переехало в ActionBar.

создание бокового меню android studio. 001.gif.pagespeed.ce.U1mHth45WQ. создание бокового меню android studio фото. создание бокового меню android studio-001.gif.pagespeed.ce.U1mHth45WQ. картинка создание бокового меню android studio. картинка 001.gif.pagespeed.ce.U1mHth45WQ. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Подробнее об этом можно прочитать в Уроке 107. Некоторые скриншоты там устарели, но код и общий смысл актуальны.

Project name: P0131_MenuSimple
Build Target: Android 2.3.3
Application name: MenuSimple
Package name: ru.startandroid.develop.menusimple
Create Activity: MainActivity

Откроем MainActivity.java. За создание меню отвечает метод onCreateOptionsMenu. На вход ему подается объект типа Menu, в который мы и будем добавлять свои пункты.

Добавьте в Activity этот метод:

Пункты меню добавляются методом add. На вход методу подается текст пункта меню. Добавим 4 пункта.

Метод onCreateOptionsMenu должен вернуть результат типа boolean. True – меню показывать, False – не показывать. Т.е. можно было бы накодить проверку какого-либо условия, и по итогам этой проверки не показывать меню передавая False. Пока нам это не нужно, поэтому поручаем этот выбор методу суперкласса, по умолчанию он возвращает True.

Сохраним все, запустим приложение и нажмем кнопку меню на эмуляторе.

создание бокового меню android studio. 20110904 L0013 L MenuShow1. создание бокового меню android studio фото. создание бокового меню android studio-20110904 L0013 L MenuShow1. картинка создание бокового меню android studio. картинка 20110904 L0013 L MenuShow1. В шаблоне Empty Activity нет меню, поэтому мы создадим его сами. Это поможет вам понять принцип работы и получить общее представление о проекте. Запоминать названия классов, методов и код для обработки выбора пунктов меню необязательно. В других шаблонах меню будет встроено и вы можете сразу использовать его.

Появилось 4 пункта меню. Нажатие на них ни к чему не приводит, т.к. не реализован обработчик. Обработчиком является Activity, а метод зовется onOptionsItemSelected. На вход ему передается пункт меню, который был нажат – MenuItem. Определить, какое именно меню было нажато можно по методу getTitle. Давайте выводить всплывающее сообщение с текстом нажатого пункта меню. На выходе метода надо возвращать boolean. И мы снова предоставляем это суперклассу.

Определять нажатый пункт меню по тексту – это не самый лучший вариант. Далее будем делать это по ID. Но для этого надо немного по другому создавать меню.

На следующем уроке:

— создаем пункты меню с ID
— группируем и сортируем пункты меню

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *