Итак, давайте сегодня создадим простое меню, для приложения на Android. Создадим новый проект. Назовем его Mymenu, нажмем next. Выберем Empty Activity. Нажмем finish.

Система Android studio подготовит нам новый проект, перейдем в gradle скрипы. В Build gradle, добавим новую имплементацию. Нам понадобятся пакет

implementation 'com.android.support:design:26.0.0-beta1'

По крайней мере, в моем проекте. Нажмем синхронизировать проект.

Пункты меню

Перейдем в папку Res и создадим в ней новую Andriod ресурсную папку с ресурсным типом - меню. В ней же, создадим новый ресурс файл меню. Имя файлу присвоим, как и имя папки - menu.

На наше основное меню перетаскиванием, добавим MenuItem в количестве 3 штук.

В файле strings.xml напишем новые название, для пунктов меню, создав дополнительные строковые значение для них.

Пусть item1 будет Пункт 1, item2 Пункт 2, и item3 пусть будет Выход.

<string name="item1">Пункт 1</string>
<string name="item2">Пункт 2</string>
<string name="item3">Выход</string>

В текстовом варианте menu.xml присвоим названия из strings.xml для наших пунктов. Также для каждого item мы добавим, Android:id с именем action1, action2,action3,

<item android:id="@+id/action1" android:title="@string/item1"/>
<item android:id="@+id/action2" android:title="@string/item2"/>
<item android:id="@+id/action3" android:title="@string/item3"/>

для взаимодействия с данными пунктами. Действие номер 1 будет отвечать за что-то, какая то реакция, нажатие пункта Action 2, соответственно, будет отвечать за другие действие, Action 3 будет отвечать за выход из приложения.

В файле MainActivity напишем несколько функций для работы с меню:

onCreateOptionsMenu

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

onOptionsItemSelected

@Override
    public boolean onOptionsItemSelected(MenuItem item){
        int id = item.getItemId();
        switch (id){
            case R.id.action1:
                txt.setText(R.string.item1);
                return true;
            case R.id.action2:
                txt.setText(R.string.item2);
                return true;
            case R.id.action3:
                txt.setText(R.string.item3);
                finish();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

Объявим переменную типа TextView txt, и свяжем ее с элементом TextView, в onCreate через

txt=(TextView)findViewById(R.id.txt),

в макете activity_main.xml, добавив ему

android:id="@+id/txt"

для отображения текста.

Запустим в эмуляторе наше приложение. Как видим, появляются пункты меню, при нажатии на значение Пункт 1 или 2, текст меняется на Пункт 1 или Пункт 2, при нажатии на кнопку Выход появляется текст Выход и приложение закрывается.

Верстка меню

Кажется, все хорошо. Однако, как всегда в Android Studio данное меню будет работать только на эмуляторе, и поэтому добавим в файл styles.xml небольшой код, а перед этим в AndroidManifest.xml изменим

android:theme="@style/AppTheme" 

на

android:theme="@style/AppTheme.NoActionBar"

который говорит о том, что новый стиль без ActionBar. Также в MainActivity onCreate внесем переменную toolbar c типом ToolBar. Определим ее через toolbar = (Toolbar)findViewById(R.id.toolbar), и подключим поддержку setSupportActionBar(toolbar).

В макет activity_main.xml перед TextView добавим следующий код:

<android.support.design.widget.appbarlayout android:id="@+id/app_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:fitssystemwindows="false" android:theme="@style/AppTheme.AppBarOverlay" tools:ignore="MissingConstraints,PrivateResource" tools:layout_editor_absolutey="0dp" tools:layout_editor_absolutex="0dp">

        <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_collapsemode="pin" app:popuptheme="@style/AppTheme.PopupOverlay"></android.support.v7.widget.toolbar>

    </android.support.design.widget.appbarlayout>

Подключим эти виджеты в импорт нашего приложения.

import android.support.v7.widget.Toolbar;

Нажмем Alt+Enter, и у нас добавится, обновится импорт нашего приложения. Возможно, придется сделать несколько раз для подключения виджета. Нажмем Сохранить.

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

В прошлой статье, Вы могли видеть, как создать свой сертификат для подписания приложения. Я там все подробно показал. Кто не читал, обязательно посмотрите.

Сейчас я просто подключил свой сертификат. Введу пароль 2 раза, напишу псевдоним. Кнопку запомнить пароль отмечу, сигнатура V2, нажму finish.

Через некоторое время будет сформирован подписанный apk файл, который хранится в папке проекта, в папке release.

Откроем папку проекта и увидим там наше приложение app-release.apk с нашим меню. Я его скопирую и отправлю самому себе на яндекс диск. У меня там уже существует файл с таким же названием. Сейчас данные обновятся, и в видео под этой статьей вы можете посмотреть то, что я записывал на физическом устройстве, то есть на своем мобильном телефоне. Я открыл приложение Яндекс диска, запустил app-release.apk, нажал установку. Открыл, и, как видите, оно выглядит точно так же, как у нас было в эмуляторе, только теперь оно физически установленное и подписанное приложение, который можно передать кому-либо, отправить в PlayMarket, или выложить на своем сайте.

Смотрите видео Android studio Android Menu, как сделать меню андроид:

Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

 С уважением, авторы сайта Компьютерапия


Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!


Предыдущие статьи


We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok