ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π’ шаблонС Empty Activity Π½Π΅Ρ‚ мСню, поэтому ΠΌΡ‹ создадим Π΅Π³ΠΎ сами. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π—Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ названия классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΊΠΎΠ΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… мСню Π±ΡƒΠ΄Π΅Ρ‚ встроСно ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° основС Empty Activity ΠΈ запуститС Π΅Π³ΠΎ. Никакого мСню ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ нСсколько строковых рСсурсов Π² Ρ„Π°ΠΉΠ»Π΅ res/values/strings.xml, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню:

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» MainActivity. БСйчас Π² Π½Ρ‘ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreate(). Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu(). ИмСнно Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° появлСниС мСню Ρƒ активности. Π‘Ρ€Π°Π·Ρƒ послС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° onCreate() Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ символы ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ дальшС студия сама ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ список подходящих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

НайдитС Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ создана автоматичСски.

ДобавляСм Π² Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Ρ‘Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· рСсурсов мСню ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π½Π° экранС.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ inflate() Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ рСсурс мСню (R.menu.menu_main) ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Menu.

ЗапуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, выстроСнных Π² Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ линию. НаТмитС Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ мСню Settings.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Как Π½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, элСмСнт item ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Ρ‘ Ρ‚Ρ€ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, мСняя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ тСкст для мСню:

ЗапуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ мСню. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚Π°.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ 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!», Ρ‚ΠΎΠ»ΡŒΠΊΠΎ присвойтС Π΅ΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ΄ Π² Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ мСню ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ любой ΠΏΡƒΠ½ΠΊΡ‚ мСню. Π’ тСкстовом ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ сообщСниС.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Π²ΠΈΠ΄ с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Для этого Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт group с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ android:checkableBehavior=»single»:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ смысла Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ я Π½Π΅ Π²ΠΈΠΆΡƒ. И Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ.

Π Π΅ΠΆΠΈΠΌ Design

Π’ Android Studio 2.2 Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ графичСский Ρ€Π΅ΠΆΠΈΠΌ построСния мСню, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ…ΠΎΠΆ Π½Π° панСль инструмСнтов для добавлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° экран. Π£ мСню панСль состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… элСмСнтов: Menu Item, Search Item, Menu, Group.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт ΠΈ пСрСтаскиваСтС Π΅Π³ΠΎ Π½Π° экран Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ мСню. Если Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ созданиС мСню, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ способ Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρƒ вас Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ быстро Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ структуру мСню, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСню, достаточных для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° случаСв. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, Ρ‚ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ мСню Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ВСория.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Java

Код Π½Π° Java Π½Π΅ сильно отличаСтся. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ элСмСнтов мСню Π½Π° XML остаётся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄Π° Π² классС активности.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² студии мСню Code | Override Methods. ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠΊΠ½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±ΡƒΠΊΠ²Π°ΠΌ. МоТно Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌ Π±ΡƒΠΊΠ²Π°ΠΌ, Ρ‚.Π΅. ocom (onCreateOptionsMenu), Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΡƒΡŽ строку. НаТимаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ OK ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ДобавляСм Π² Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Ρ‘Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· рСсурсов мСню ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π½Π° экранС.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ΄ Π² Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ мСню ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ любой ΠΏΡƒΠ½ΠΊΡ‚ мСню. Π’ тСкстовом ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ сообщСниС.

БущСствуСт Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ Ρ‡Π΅Ρ€Π΅Π· XML, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠ² ΠΊΠ½ΠΎΠΏΠΊΠΈ (начиная с Android 3.0). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ android:onClick Π² рСсурсах мСню, ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° onOptionsItemSelected(). ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ android:onClick Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ Settings

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠΎΠ΄Π΅ активности напишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Если ΡΡ‚Π°Ρ‚ΡŒΡ Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’Ρ‹ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с мСню Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ мСсяца обучСния. Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с мСню Π³Π»ΡƒΠ±ΠΆΠ΅. Π‘ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΠΊΠ°ΠΊ старыС устройства ΠΏΠΎΠ΄ Android 2.3, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Π½Π° Android 4.0.

МСню Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ†ΠΈΠΉ (Options Menu)

Π—Π° мСню ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ класс android.view.Menu. КаТдая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ связана с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ мСню. Π‘Π°ΠΌΠΎ мСню содСрТит ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню (класс android.view.MenuItem) ΠΈ подмСню (класс android.view.SubMenu).

Когда мСню открываСтся Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, Android Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu(), пСрСдавая Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Menu. МСню ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ рСсурсов Π² XML-Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ add().

Π’ стандартном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ шаблона ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° для мСню ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° Settings ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для мСню (Π²Ρ‹ ΠΎΠ± этом ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мСню ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ рСсурсов

Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с мСню Ρ‡Π΅Ρ€Π΅Π· рСсурсы. Для создания мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСсурсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² XML-Ρ„Π°ΠΉΠ»Π΅. Π‘Π°ΠΌ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ res/menu/ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. МСню состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСню для ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ³Ρ€Ρ‹. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» game_menu.xml:

ΠœΡ‹ создали мСню с двумя ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

android:id Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ android:title ВСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² мСню

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для элСмСнта item, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ android:icon=»@drawable/home» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ вывСсти Π·Π½Π°Ρ‡ΠΎΠΊ для ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, Π° android:enabled=»false» позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ мСню нСдоступным.

Атрибут android:titleCondensed примСняСтся Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ слишком ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΈ Π½Π΅ «помСщаСтся» Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ элСмСнтС мСню.

Атрибут android:orderInCategory опрСдСляСт порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ элСмСнты мСню MenuItems.

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС систСмныС Π·Π½Π°Ρ‡ΠΊΠΈ Android. НапримСр, android:icon=»@android:drawable/ic_menu_help» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ вывСсти Π·Π½Π°Ρ‡ΠΎΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΡˆΠΈΡ‚ Π² систСму. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ систСмных Π·Π½Π°Ρ‡ΠΊΠ°Ρ… ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ БистСмныС графичСскиС рСсурсы

ΠŸΡ€ΠΈ создании мСню ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π° строковыС рСсурсы @string/new_game ΠΈ @string/help. НСобходимо Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ строки Π² Ρ„Π°ΠΉΠ»Π΅ strings.xml:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ внСсти измСнСния Π² классС активности, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ мСню. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ созданный Π½Π°ΠΌΠΈ рСсурс мСню Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Для этой Ρ†Π΅Π»ΠΈ сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ MenuInflater.inflate(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° onCreateOptionsMenu(). Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° мСню ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ MENU Π½Π° устройствС:

ПослС вставки ΠΊΠΎΠ΄Π° срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ попросит ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ пространства ΠΈΠΌΠ΅Π½.

ΠœΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu() ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ появлСниС мСню Π½Π° экранС ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Menu (для старых устройств). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылку Π½Π° мСню ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² любом мСстС ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu() ΠΎΠΏΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΡ€ΠΈ нСобходимости автоматичСски Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² мСню Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ систСмныС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹. Π’ Π½ΠΎΠ²Ρ‹Ρ… устройствах ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся ΠΏΡ€ΠΈ создании активности. ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ мСню Π±Ρ‹Π»ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π½Π° экранС.

Запустив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ MENU Π½Π° эмуляторС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ созданноС мСню.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ΠœΠ΅Ρ‚ΠΎΠ΄ getMenuInflater() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр класса MenuInflater, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для чтСния Π΄Π°Π½Π½Ρ‹Ρ… мСню ΠΈΠ· XML.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, мСню появляСтся Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана. ВсСго ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ вывСсти Π½Π° экран ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню. Если ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² большС, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² плюс ΡˆΠ΅ΡΡ‚ΠΎΠΉ ΠΏΡƒΠ½ΠΊΡ‚ More, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню.

Π‘Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ².

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ ΠΊ мСню, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… стало сСмь.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π’Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мСню. Но ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ бСсполСзно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° наши наТатия. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ onOptionsItemSelected(). ΠœΠ΅Ρ‚ΠΎΠ΄ распознаСт ΠΏΡƒΠ½ΠΊΡ‚, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‡Π΅Ρ€Π΅Π· MenuItem. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² getItemId(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. Π”Π°Π»Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch Π½Π°ΠΌ остаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ мСню ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ»ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню. Π’ тСкстовом ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ сообщСниС.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ getItemId() Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ID для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΎΡ€Π° switch с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ Π² XML-рСсурсах. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° выполняСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚, Ρ‚ΠΎ выполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ default, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ super class.

Π’ Android 3.0 ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ android:onClick Π² рСсурсах мСню, ΠΈ Π²Π°ΠΌ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ onOptionsItemSelected(). ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ android:onClick Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ созданиС мСню

Рассмотрим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ созданиС мСню для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹. Нам понадобится ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько констант для ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню:

Π£ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° add() Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MenuItem, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ, Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΈ Ρ‚.Π΄.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мСню со Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ setIcon()

Напомним Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΡˆΠ΅ΡΡ‚ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ мСню (ΠΈΠ»ΠΈ ΠΊ пяти, Ссли ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² большС ΡˆΠ΅ΡΡ‚ΠΈ).

ΠœΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu вызываСтся систСмой Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ создании мСню. Если Π²Π°ΠΌ трСбуСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ мСню Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° onPrepareOptionsMenu().

ГорячиС клавиши

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ горячиС клавиши для быстрого доступа, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ символы ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

НапримСр, Ссли Π·Π°Π΄Π°Ρ‚ΡŒ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ setAlphabeticShortcut(‘q’);, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ мСню (ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π½ΠΈΠΈ клавиши MENU) Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Q Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню. Π­Ρ‚Π° горячая клавиша (ΠΈΠ»ΠΈ сочСтаниС клавиш) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΊΠ°ΠΊ подсказка, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π°Ρ Π½ΠΈΠΆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. Π’ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ… Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ клавиша Ctrl, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ….

ГорячиС клавиши ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Ρ‡Π΅Ρ€Π΅Π· XML: android:alphabeticShortcut=»c».

ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ наТатия ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ активности onKeyShortcut():

БозданиС подмСню

ПодмСню ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² любоС мСню, ΠΊΡ€ΠΎΠΌΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ подмСню. ПодмСню создаСтся Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° onCreateOptionsMenu() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° addSubMenu(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SubMenu. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SubMenu ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΊ этому мСню, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ add(). НапримСр:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню появится Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ с подмСню. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ

Π’ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта мСню, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setCheckable():

Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню с Ρ„Π»Π°ΠΆΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ мСню, создав ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΡƒΠ½ΠΊΡ‚ мСню добавляСтся Π² Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ add(), ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΌΡƒ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ мСню. Допустим, ΠΌΡ‹ объявили ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для Π³Ρ€ΡƒΠΏΠΏΡ‹ мСню Π¦Π²Π΅Ρ‚ ΠΈ элСмСнтов мСню для установки Ρ†Π²Π΅Ρ‚Π°:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для создания Π³Ρ€ΡƒΠΏΠΏΡ‹ мСню с Ρ„Π»Π°ΠΆΠΊΠ°ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setGroupCheckable() для всСй Π³Ρ€ΡƒΠΏΠΏΡ‹ (этом случаС Π½Π΅Ρ‚ нСобходимости Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setCheckable() для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню):

Π£ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setGroupCheckable() Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

Для управлСния состояниСм Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚Π° мСню Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ЗапуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ мСню ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π¦Π²Π΅Ρ‚. Π£ вас появится подмСню с трСмя ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ (ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ, Π—Π΅Π»Π΅Π½Ρ‹ΠΉ, Π‘ΠΈΠ½ΠΈΠΉ) Π² Π²ΠΈΠ΄Π΅ Ρ„Π»Π°ΠΆΠΊΠΎΠ². БостояниС Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ обрабатываСтся Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ сохраняСтся ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²Π°Ρ… мСню.

МоТно сразу Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ setIntent(), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сработаСт ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ этого ΠΏΡƒΠ½ΠΊΡ‚Π°, Ссли Π΄Π°Π½Π½ΠΎΠ΅ событиС Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ onMenuItemClickListener (устар.) ΠΈΠ»ΠΈ onOptionsItemSelected. Π‘Ρ€Π°Π±ΠΎΡ‚Π°Π², Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ startActivity.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ мСню

Если Π²Π°ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ мСню (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² дСмонстрационных цСлях), Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ openOptionsMenu():

Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ закрытия мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ closeOptionsMenu(), Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ Ρƒ мСня ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° openOptionsMenu() Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ мСню.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню

Допустим, ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π² xml-Ρ„Π°ΠΉΠ»Π΅:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ явно лишний ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΈΠ· нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎ ΠΊΠΎΡ‚Π°Ρ…, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ findItem() ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ. Бсылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Menu Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠ·Π½Π°Π»Π° ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состава мСню.

Но Ρƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅ΡΡ‚ΡŒ нСдостаток, Ссли ΠΌΡ‹ ΠΏΠΎΠ²Π΅Ρ€Π½Ρ‘ΠΌ экран, Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ пСрСсоздатся ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ΅ мСню снова появится. Как ΠΆΠ΅ Π½Π°ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ сранного пёсика?

Надо Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ состояниС ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Ρ‚ΠΈΠΏΠ° Bundle Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ onSaveInstanceState, Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ onCreate() ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ сохранённоС состояниС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onPrepareOptionsMenu, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ мСню Π½Π° экранС:

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Menu

На старых устройствах использовалась Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Menu. Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Android мСню ΡƒΠ±Ρ€Π°Π»ΠΈ Π² ActionBar ΠΈ Π΅Ρ‘ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ стало Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Но ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ для мСню. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ такая ΠΊΠ½ΠΎΠΏΠΊΠ°, Π² Android 14 Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этой ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° для мСню

Π’ соврСмСнных устройствах мСню являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ActionBar. И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ мСню Ρ‡Π΅Ρ€Π΅Π· XML.

Допустим, Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

Π’ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ showAsAction Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ never, ΠΈΠ½Π°Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅. Π‘Π°ΠΌΠ° Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π·Π°Π΄Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ actionLayout. Код для Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ:

МСню Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ…

МСню ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒΡŽ активности, Π½ΠΎ ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ практичСски Π½Π΅ отличаСтся. Π£ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

FragmentManager ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Ρ‹Π·ΠΎΠ² onCreateOptionsMenu() ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° onCreateOptionsMenu() ΠΎΡ‚ систСмы. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ FragmentManager, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² onCreateOptionsMenu(). Для этого вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ setHasOptionsMenu():

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

МСню Π² Android прилоТСниях

Android ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° мСню : Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΈ контСкстноС (Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ΠΎ). Π’ старых Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… имССтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Menu, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню. Начиная с вСрсии Android 3.0 (ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API 11) Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ МСню большС Π½Π΅ трСбуСтся; Android прилоТСния пСрСстали Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ мСню ΠΈΠ· 6 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ². ВмСсто Π½Π΅Π΅ Π² прилоТСниях появилась строка дСйствий ActionBar с часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ дСйствиями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйс ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню измСнились, бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° опрСдСлСния Π½Π°Π±ΠΎΡ€Π° дСйствий ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ основана Π½Π° API-интСрфСйсах класса Menu. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, начиная с вСрсии Android 3.0 ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² строкС дСйствий ActionBar Π² Π²ΠΈΠ΄Π΅ сочСтания ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π½Π° экранС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² дСйствий ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ располоТили Π² ΠΏΡ€Π°Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части прилоТСния. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ открываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ отобраТаСтся список Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π°.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню появляСтся ΠΏΡ€ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ элСмСнтС интСрфСйса прилоТСния. Π’ контСкстном мСню содСрТатся дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΠ»ΠΈ контСкстный ΠΊΠ°Π΄Ρ€. ΠŸΡƒΠ½ΠΊΡ‚Ρ‹ контСкстных дСйствий, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² строкС Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части экрана.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° мСню (Π½Π° Π½ΠΎΠ²Ρ‹Ρ… устройствах) ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android 4.0 ΠΈ Π²Ρ‹ΡˆΠ΅. К ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ мСню Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠΊΠΎΠ½ΠΊΠΈ. ΠŸΡ€ΠΈ этом, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ Ρ‚Π΅Π»Π΅ΠΆΠΊΠΈ (ic_shopping_cart_black.png) сдСлаСм Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ скрытыми. Для этого создадим Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ/ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ p06menu, интСрфСйс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдставлСн Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅. Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части прилоТСния располагаСтся мСню, Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части высвСчиваСтся Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ сообщСниС, создаваСмоС классом Toast ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ связанноС с Π½ΠΈΠΌ сообщСниС.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ интСрфСйса

Π’ интСрфСйсС прилоТСния (activity_main.xml) создаваСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TextView с тСкстом «Hello World» удаляСм. ПослС этого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ панСль инструмСнтов. Для этого Π² ΠΏΠ°Π½Π΅Π»ΠΈ Palette (Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚) ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Containers ΠΈ пСрСтаскиваСм Π² панСль Component Tree ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ AppBarLayout. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Toolbar Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ автоматичСски.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ интСрфСйса activity_main.xml ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ :

Листинг activity_main.xml

Иконки ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мСню, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ модуля res/drawable ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ (Π±ΠΎΠ»Π΅Π΅ 6) :

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ctrl+C, Ctrl+V. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСно здСсь.

БозданиС мСню

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСсурсный Ρ„Π°ΠΉΠ» мСню, Ρ‚.Π΅. для описания мСню Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ XML Ρ„Π°ΠΉΠ», располагаСмый Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° res/menu/. Для формирования рСсурсного XML Ρ„Π°ΠΉΠ»Π° описания мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² Studio New/Android Resource File, ΠΈ, Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅, опрСдСляСм Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Β«main_menuΒ». НаТимаСм OK, ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ res/menu/ Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» main_menu.xml.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

ОписаниС мСню Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сСкции :

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ листингС Ρ„Π°ΠΉΠ»Π° main_menu.xml прСдставлСны 2 ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚Π° мСню нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ΠŸΡƒΠ½ΠΊΡ‚ мСню с Ρ‚Π΅Π»Π΅ΠΆΠΊΠΎΠΉ (Cart) опрСдСляСм постоянно Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ (app:showAsAction=»always»), Π° ΠΏΡƒΠ½ΠΊΡ‚ мСню Call – Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ (app:showAsAction=»never»); ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ :

β€’ id ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ мСню;
β€’ title ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст;
β€’ icon ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ рядом с тСкстом ΠΈΠΊΠΎΠ½ΠΊΠ°;
β€’ showAsAction опрСдСляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ мСню Π² ActionBar;
β€’ enabled ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ доступности ΠΏΡƒΠ½ΠΊΡ‚Π° мСню (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅);
β€’ orderInCategory порядок отобраТСния Π² ActionBar (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅);
β€’ titleCondensed Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ примСняСтся Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ слишком ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΈ Π½Π΅ «помСщаСтся» Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ элСмСнтС мСню (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅).

Π’Π°ΠΆΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ app:showAsAction опрСдСляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ мСню Π² ActionBar. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ never ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ элСмСнт мСню Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ActionBar, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ мСню. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ always, Ρ‚ΠΎ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ прилоТСния (ActionBar). Π’Π°ΠΊΠΆΠ΅ доступны значСния ifRooms (Ссли позволяСт мСсто), withText ΠΈ collapseActionView.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, слСдовало Π±Ρ‹ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСню Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ наимСнования ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню Π² рСсурсном Ρ„Π°ΠΉΠ»Π΅ res/values/strings.xml ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π² опциях android:title ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню. Но для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π³Π΄Π΅ рассматриваСтся мСню, локализация ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния.

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

Атрибут checkableBehavior ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ :
β€’ single Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ);
β€’ all всС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ (Ρ„Π»Π°ΠΆΠΊΠΈ);
β€’ none нСльзя Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ мСню

Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Android Studio прСдставляСт описаниС Ρ„Π°ΠΉΠ»Π° мСню main_menu.xml Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ( Design | Text ) ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ описанию интСрфСйса activity_main.xml. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ main_menu.xml прСдставлСн Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Design. Π’ графичСском интСрфСйсС Ρ„Π°ΠΉΠ»Π° main_menu.xml ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ всС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню. ΠŸΡ€ΠΈ этом Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ActionBar располагаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Π»Π΅ΠΆΠΊΠΈ, рядом с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располагаСтся ΠΈΠΊΠΎΠ½ΠΊΠ° с Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° эту ΠΈΠΊΠΎΠ½ΠΊΡƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ run-time Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ (прСдставлСнноС Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅) Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ располоТСнноС Π² ActionBar мСню.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π’ ΠΏΠ°Π½Π΅Π»ΠΈ Component Tree прСдставлСна иСрархичСская структура мСню. Рядом с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ мСню располагаСтся ΠΈΠΊΠΎΠ½ΠΊΠ° с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎ нСобходимости Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкста, ΠΎ Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти измСнСния Π² Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° res/values/styles.xml ΠΈ Π² Ρ„Π°ΠΉΠ» студии Gradle Scripts/p06menu.

Листинг res/values/styles.xml

ВнСсСнныС Π² Ρ„Π°ΠΉΠ» измСнСния Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΆΠΈΡ€Π½Ρ‹ΠΌ стилСм.

Листинг Gradle Scripts/p06menu

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Gradle Scripts Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² мСню наряду с тСкстом ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ„Π°ΠΉΠ» Gradle Scripts/p06menu ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ студио

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ листингС прСдставлСн тСкст Ρ„Π°ΠΉΠ»Π° Gradle Scripts/p06menu. ПослСдняя выдСлСнная строка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ… мСню ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΠΈ. БогласуйтС Π½ΠΎΠΌΠ΅Ρ€ со своСй вСрсиСй SDK.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π½Π° Π²Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ двумя способами. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ, самый простой, связан с созданиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² активности MainActivity.java ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ описания ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню Help. Для этого Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ MainActivity.java Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ onHelpClick. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° описаниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° : ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ public ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏΠ° MenuItem. ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сообщСниС с использованиСм класса Toast.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообытия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ описания ΠΏΡƒΠ½ΠΊΡ‚Π° мСню android:onClick ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ мСню связан с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ onOptionsItemSelected. ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ MainActivity.java Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½ΠΎ ΠΎΠ½ пустой. НСобходимо Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ. НиТС прСдставлСн листинг ΠΌΠ΅Ρ‚ΠΎΠ΄Π° нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню выводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° MenuItem.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ мСню

MainActivity.java ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ мСню. Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько экранов, Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ активности Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ мСню со своими настройками. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ мСню ΠΊ активности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ активности onCreateOptionsMenu. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ листингС прСдставлСн ΠΊΠΎΠ΄ активности с двумя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ onCreate ΠΈ onCreateOptionsMenu (прСдставлСнныС Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² листинг). Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ создаСтся Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΊ активности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ мСню. ΠœΠ΅Ρ‚ΠΎΠ΄ onCreateOptionsMenu вызываСтся Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ мСню. Но, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню (Cart) Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся сразу ΠΆΠ΅, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ интСрфСйса прилоТСния.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ onCreateOptionsMenu сначала создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° MenuInflater. ПослС этого вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° inflate, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ рСсурсноС мСню (R.menu.menu_main) ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Menu. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ menu ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ MenuBuilder, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСфлСксия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° setOptionalIconsVisible.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : Android Studio ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ рСфлСксия Π½Π΅ поддСрТиваСтся систСмой ΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсиСй систСмы Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚).

Код с рСфлСксиСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню ΠΈΠΊΠΎΠ½ΠΎΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠΌ, прСдставлСнным Π½ΠΈΠΆΠ΅.

Но, ΠΊ соТалСнию, я Π½Π΅ смог сразу ΠΆΠ΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ : здСсь Android Studio Ρ€ΡƒΠ³Π°Π»Π°ΡΡŒ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ setOptionalIconsVisible, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ с использованиСм рСфлСксии. Полагаю, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°, Ρ‚ΠΎ Π² ΡΡ‚Π°Ρ‚ΡŒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ внСсСны ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ строки Π’Ρ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅.

ПослС старта ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ интСрфСйс прилоТСния, прСдставлСнный Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅. Π—Π΄Π΅ΡΡŒ мСню ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ интСрфСйса прилоТСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ сообщСниС ΠΈ мСню свСрнуто.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *