Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android. Π§Π°ΡΡ‚ΡŒ 1Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 11

Автор Π•Π²Π³Π΅Π½ΠΈΠΉ БСнько

ПанСль Action Bar Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Android 3.0 ΠΈ прСдставляСт собой ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ часто Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² дСсктопных прилоТСниях. Π­Ρ‚ΠΎ Ρ‚Π° панСль Π½Π°Π²Π΅Ρ€Ρ…Ρƒ ΠΎΠΊΠ½Π° прилоТСния, которая ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΊΠ°ΠΊ: Β«Π€Π°ΠΉΠ»Β», Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β», Β«Π‘ΠΏΡ€Π°Π²ΠΊΠ°Β» ΠΈ Ρ‚.Π΄. Основная идСя Action Bar состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ дСйствия Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ быстрый доступ ΠΊ дСйствиям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования Action Bar.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нас ΠΊ ΡƒΡ€ΠΎΠΊΡƒ ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ…, ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ с просмотром Ρ†ΠΈΡ‚Π°Ρ‚ ΠΈΠ· пьСс ШСкспира. Π—Π΄Π΅ΡΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ нСсколько элСмСнтов ΠΊ Action Bar, эти элСмСнты описаны трСмя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ классами. НСкоторыС элСмСнты ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· основной Activity. НСкоторыС ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. И Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран Ρ†ΠΈΡ‚Π°Ρ‚Ρ‹.

Как ΠΏΡ€Π΅ΠΆΠ΄Π΅, ΠΊΠΎΠ³Π΄Π° запускаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΡ‚ΡŒ основная Activity, которая Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ СдинствСнный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ посмотрим Π½Π° Action Bar Π½Π°Π²Π΅Ρ€Ρ…Ρƒ экрана, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΄Π²Π΅ тСкстовых ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ – Β«ActivityActionΒ» ΠΈ Β«TitleActionΒ». ΠŸΠ΅Ρ€Π²Π°Ρ Π±Ρ‹Π»Π° ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Ρ‚ΡƒΠ΄Π° ΠΊΠΎΠ΄ΠΎΠΌ Activity, Π° вторая – Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². И, Ссли ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π½ΠΈΠΌ, Ρ‚ΠΎ появится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ сообщСниС, показывая ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ фактичСски выполняСт дСйствия, связанныС с этой ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π² Action Bar.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Ρ‚ΠΎ Π² Π»Π΅ΠΉΠ°ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ динамичСски Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ†ΠΈΡ‚Π°Ρ‚. А Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ†ΠΈΡ‚Π°Ρ‚ Ρ‚ΠΎΠΆΠ΅ добавляСт динамичСски Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСмСнты ΠΊ Action Bar. Π’ этом случаС добавились Π΄Π²Π° дСйствия – QuoteAction ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π² Π·ΠΎΠ½Ρƒ пСрСполнСния (доступ ΠΊ Π·ΠΎΠ½Π΅ пСрСполнСния обСспСчСн Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ½ΠΎΠΏΠΊΡƒ «МСню» β€“ Ρ‚Ρ€ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ). И, Ссли ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ QuoteAction, появится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ сообщСниС, Π³Π΄Π΅ говорится, Ρ‡Ρ‚ΠΎ это дСйствиС Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ†ΠΈΡ‚Π°Ρ‚. Если ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ пСрСполнСния (ΠΎΠ½ ΠΆΠ΅ – ΠΊΠ½ΠΎΠΏΠΊΠ° «МСню»), это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт – SecondaryQuoteAction, созданный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ†ΠΈΡ‚Π°Ρ‚. И Ссли ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΌΡƒ, Ρ‚ΠΎ раскрываСтся связанный с Π½ΠΈΠΌ тСкст.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² исходном ΠΊΠΎΠ΄Π΅.

Π’ Ρ„Π°ΠΉΠ»Π΅ menu.xml Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – ShowAsAction, Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – ifRoom/withText. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Android Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ этот элСмСнт Π² Action Bar, Ссли для Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ свободноС мСсто, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ скрыт Π² Π·ΠΎΠ½Π΅ пСрСполнСния. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ тСкст, Π° Π½Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ. Если ΠΆΠ΅ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ β€œnever”, Ρ‚ΠΎ ΠΎΠ½ всСгда Π±ΡƒΠ΄Π΅Ρ‚ скрыт Π² Π·ΠΎΠ½Π΅ пСрСполнСния.

Action Bar Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ прилоТСния. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ использовании Action Bar экран Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π΄Π²Π΅ части – ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ содСрТимого. Класс ActionBar.Tab позволяСт ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ Π² области Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π° Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Π΅Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² области содСрТимого. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Ρ‚ΠΎ Π² области содСрТимого Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«UITabLayoutΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ класс ActionBar.Tab, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π»Π΅ΠΉΠ°ΡƒΡ‚ gridView.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим исходный ΠΊΠΎΠ΄ этого прилоТСния. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» tab_layout_activity ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onCreate. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Action Bar ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.

Π—Π°Ρ‚Π΅ΠΌ создаСм Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ с gridView ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΌΡƒ список ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ вывСсти Π½Π° экран. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС это изобраТСния Ρ†Π²Π΅Ρ‚ΠΎΠ². НаконСц, создаСм ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΈ присоСдиняСм Π΅Π΅ ΠΊ Action Bar. И Ρ‚ΠΎ ΠΆΠ΅ самоС сдСлаСм с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹, создаСм экзСмпляры Β«ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉΒ» Π²ΠΊΠ»Π°Π΄ΠΊΠΈ (TabListener). Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ.

ΠœΠ΅Ρ‚ΠΎΠ΄ onTabSelected. Когда Π²ΠΊΠ»Π°Π΄ΠΊΠ° Π²Ρ‹Π±Ρ€Π°Π½Π°, этот ΠΊΠΎΠ΄ добавляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π² Activity. Π”Π°Π»Π΅Π΅ – ΠΌΠ΅Ρ‚ΠΎΠ΄ onTabUnselected. Когда Π²ΠΊΠ»Π°Π΄ΠΊΠ° отмСняСтся (ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ), этот ΠΊΠΎΠ΄ удаляСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈΠ· Activity.

Π”ΠΈΠ°Π»ΠΎΠ³ – своСго Ρ€ΠΎΠ΄Π° нСзависимоС ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Activity ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… связСй с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. НСкоторыС ΠΈΠ· классов Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², прСдоставляСмыС Android, это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ оповСщСния (alert), прогрСсса (ProgressDialog) ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Ρ‚Ρ‹ (DatePicker) ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (TimePicker).

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ AlertDialog, ΠΈ ProgressDialog. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«UIAlertDialogΒ». Когда ΠΎΠ½ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ, Π½Π° экран Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния. Если ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ раскрываСт Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ оповСщСния – alert dialog, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сообщСниС Β«Π’Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ?Β» ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Β«Π”Π°Β» ΠΈΠ»ΠΈ «НСт».

Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ сСйчас Β«NoΒ» β€“ это просто Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π°Π·Π°Π΄ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя я Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹ΠΉΡ‚ΠΈ. Π’ΠΎΠ³Π΄Π° я Π½Π°ΠΆΠΌΡƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ снова, которая Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π° экран. На сСй Ρ€Π°Π·, ΠΎΠ΄Π½Π°ΠΊΠΎ, я Π²Ρ‹Π±Π΅Ρ€Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«YesΒ». Π’ этой Ρ‚ΠΎΡ‡ΠΊΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ alert dialog закроСтся, Π° Π½ΠΎΠ²ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ – Π½Π° сСй Ρ€Π°Π· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прогрСсса (progress dialog) – Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° экран. Оно сообщаСт ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ процСсс Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ продолТаСтся. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС процСсс Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ сСбя.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² исходном ΠΊΠΎΠ΄Π΅. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» alert_dialog_activity ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onCreate. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ ShutDown, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ showDialogFragment, пСрСдавая ID ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ showDialogFragment создаСт экзСмпляр AlertDialogFragment ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ show.

AlertDialogFragment – это подкласс DialogFragment. И Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreateDialog. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° show. Он создаСт Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (alert dialog).

ЀактичСски здСсь Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² setMessage. И сразу послС этого – Π²Ρ‹Π·ΠΎΠ² setCancelable, Π·Π°Ρ‚Π΅ΠΌ – Π²Ρ‹Π·ΠΎΠ² setNegativeButton, ΠΈ Ρ‚.Π΄. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ сдСлали всС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠ°ΠΊΠΈΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, ΠΌΡ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ эту Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° create, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эффСктивно соСдиняСт всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ сконфигурированный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Когда это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° экран, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Β«NoΒ», Ρ‚ΠΎ происходит Π²Ρ‹Π·ΠΎΠ² continueShutdown с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ shouldContinue, Ρ€Π°Π²Π½Ρ‹ΠΌ false. А Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Β«YesΒ», Ρ‚ΠΎ происходит Π²Ρ‹Π·ΠΎΠ² continueShutdown с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ true. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли shouldContinue Ρ€Π°Π²Π΅Π½ false, Ρ‚ΠΎ ΠΌΡ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΈ всС продолТаСтся, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. А Ссли shouldContinue – true, ΠΌΡ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ showDialogue, пСрСдавая Π΅ΠΌΡƒ Ρ‚Π΅Π³ прогрСсса ID. Π­Ρ‚ΠΎ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ progressDialogueFragment ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ show. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС ΠΌΡ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ onCreateDialogue Π² классС progressDialogueFragment, Π³Π΄Π΅ ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ прогрСсса (ProgressDialog), устанавливаСм Π΅ΠΌΡƒ сообщСниС Β«Activity Shutting DownΒ», ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ setIndetermitate с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ true, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.