Standart telefonun bağlanma menyusunu necə əvəz etmək olar. Android bağlama menyusunu necə genişləndirmək olar

Köklənmə nə üçündür? android cihazları və hansı imkanlar verdiyi, kifayət qədər bəllidir böyük rəqəm gizli inkişaf etmiş hardware parametrləri menyusu haqqında demək mümkün olmayan istifadəçilərə mühəndislik menyusu da deyilir. Bu parametrlər haqqında az adam, hətta daha az sahibi bilir mobil cihazlar onlardan istifadə edə bilirlər. Android mühəndislik menyusu nədir və nə üçün lazımdır?

Android mühəndislik menyusu əməliyyat sistemini və cihaz sensorlarını sınaqdan keçirmək üçün tərtibatçılar üçün nəzərdə tutulmuş xüsusi alt proqramdan başqa bir şey deyil. Bu proqramın interfeysi mobil cihazın aparat konfiqurasiyasını dəyişdirməyə imkan verən bir sıra seçimlərlə təmsil olunur. Onun köməyi ilə siz qadcetin aparatı haqqında hərtərəfli məlumat əldə edə, prosessoru, operativ yaddaşı və fiziki fləş yaddaşı, simsiz əlaqə rejimlərini sınaqdan keçirə, kamera, displey, mikrofon, dinamiklər və s. parametrlərini tənzimləyə bilərsiniz.

Mühəndislik menyusuna daxil olun

Bütün bunlar, əlbəttə ki, yaxşıdır, amma Android interfeysində müvafiq seçim yoxdursa, mühəndislik menyusuna necə daxil olmaq olar? Qabaqcıl aparat parametrləri menyusuna daxil olmaq telefon nömrəsini yığmaq üçün xəttə daxil edilmiş xüsusi koddan istifadə etməklə həyata keçirilir. Menyu birləşmənin son simvolunu daxil etdikdən dərhal sonra açılmalıdır, lakin bəzi hallarda zəng düyməsini sıxmaq lazım ola bilər.

Prosedurun özündə mürəkkəb bir şey yoxdur, lakin nəzərə alınmalıdır ki, müxtəlif mobil gadget modelləri üçün kodlar mövcuddur. Aşağıda ən məşhur istehsalçılar üçün kodların siyahısını təqdim etdik.

Android-də mühəndislik menyusu kodları universaldır, lakin "sol" proqram təminatı olan telefonlarda onların düzgün işləməsinə zəmanət verilmir. Siz həmçinin Android aparat parametrlərinə daxil olmaq üçün xüsusi proqramlardan istifadə edə bilərsiniz, məsələn, "MTK Engineering Menyu" və ya "Mobileuncle MTK Tools".

Bu cür tətbiqlər xüsusilə proqram təminatı "zəng edənin" mövcudluğunu təmin etməyən planşetlərdə faydalıdır. Bu proqramlardakı interfeys və mövcud seçimlər dəsti bir qədər fərqlidir, lakin onlarla məşğul olmaq çətin olmayacaq.

Hansı üsuldan istifadə edirsinizsə, mühəndislik menyusu ilə işləyərkən maksimum diqqətli olmalısınız. İşə başlamazdan əvvəl parametrləri bərpa edə bilmək üçün orijinal parametrlərin bütün dəyərlərini yazmaq tövsiyə olunur. Mühəndislik menyusu ilə təcrübədən nəyin çıxacağını öyrənmək yolverilməzdir, çünki siz cihazınızı yararsız hala sala bilərsiniz!

Müəyyən bir telefon modeli üçün mühəndislik kodlarının siyahısını əldə etmək üçün xüsusi proqramdan istifadə edə bilərsiniz Gizli Kodlar Google Play-də mövcuddur. Bəzi mobil cihazların modellərində mühəndislik menyusuna tam giriş üçün super istifadəçi hüquqları (kök) tələb oluna bilər.

Menyudan istifadə edərək nə dəyişdirilə bilər

Mühəndislik menyusuna necə girəcəyinizi bilirsiniz, indi onunla hansı parametrləri edə biləcəyinizi öyrənək. İmkanlar daha genişdir. Menyu alt proqramı dinamikin səs səviyyəsini və mikrofon həssaslığını, daxili kamera parametrlərini, audio parametrlərini, GPS, Bluetooth və Wi-Fi modullarını dəyişdirməyi, batareya enerjisinə qənaət etmək üçün istifadə olunmamış tezlikləri söndürməyi dəstəkləyir. Siz həmçinin cihazınızın əsas komponentlərini və xarici yaddaş kartını sınaqdan keçirə, giriş/çıxış əməliyyatlarını tənzimləyə, prosessor və batareyanın dəqiq temperaturunu təyin edə və zərərli elektromaqnit şüalanma səviyyəsini təyin edə bilərsiniz.

Başqa bir faydalı xüsusiyyət bərpa rejiminə girişdir - kompüterlərdə BIOS-un analoqu, bu da öz növbəsində bütün parametrlər dəstini ehtiva edir. Bərpa Rejimi xüsusiyyətlərinə cihazın zavod parametrlərinə yenidən qurulması, mikroproqramın yenilənməsi, əməliyyat sisteminin ehtiyat nüsxəsinin yaradılması, kök girişinin əldə edilməsi, həssas istifadəçi məlumatlarının silinməsi daxildir. Mühəndislik menyusunun bütün variantlarını bir məqalə çərçivəsində sadalamaq mümkün deyil, telefonda və ya planşetdə nə qədər çox sensor və komponent olsa, bir o qədər geniş olacaqdır.

Mühəndislik menyusu vasitəsilə telefonun səsini artırın

İndi biz ən populyar əməliyyatlardan birinin nümunəsindən istifadə edərək aparat parametrləri ilə necə işləməyi nümayiş etdirəcəyik və mühəndislik menyusu vasitəsilə Android-də səs səviyyəsini necə artıracağını öyrənəcəyik. Beləliklə, Mobileuncle MTK Tools istifadə edərək və ya "sehrli" kodu daxil edərək menyuya gedin, sonra Audio alt bölməsini tapın və açın. Menyuya Mobileuncle Tools proqramı vasitəsilə daxil olmusunuzsa, bu yarımbölmə Mühəndis Rejimi yüksək sifariş bölməsində yerləşəcək, digər hallarda o, adətən Avadanlıq Testi sekmesinde yerləşir.

Audio alt bölməsində aşağıdakı seçimlər sizin üçün əlçatan olacaq:

  • Normal rejim - qulaqlıq cihaza qoşulmadıqda işləyən normal rejim.
  • Qulaqlıq rejimi - qulaqlıqlar və ya dinamiklər smartfona qoşulduqda aktivləşdirilən qulaqlıq rejimi.
  • LoudSpeaker Mode - dinamik rejimi. Dinamik işə salındıqda, qulaqlıq cihaza qoşulmadıqda aktivləşdirilir.
  • Headset_LoudSpeaker Mode - qoşulmuş qulaqlıq ilə dinamik rejimi. Əvvəlki ilə eynidir, lakin qulaqlıqlar və ya dinamiklər qoşulmuşdur.
  • Speech Enhancement - bu rejim dinamik telefondan istifadə etmədən telefonda danışarkən aktivləşdirilir.

Bölmədə başqa parametrlər ola bilər, məsələn, Debug Info və Speech Logger, lakin onlara toxunmamaq daha yaxşıdır. Səs səviyyəsini dəyişmək istədiyiniz rejimi seçin (Normal Mode olsun), açılan siyahıdan Type seçin və hansı funksiya üçün səsi dəyişəcəyimizi göstərin. Aşağıdakı funksiyalar mövcud ola bilər:

  • Zəng - daxil olan zənglər üçün səs səviyyəsinin təyini;
  • Media - multimedia oynayarkən dinamiklərin səsini tənzimləyin;
  • Sip - İnternet zəngləri üçün səs parametrləri;
  • Sph - danışıq dinamikinin səs parametrləri;
  • Sph2 - ikinci danışıq dinamikinin səs parametrləri (seçim mövcud olmaya bilər);
  • Mic - mikrofonun həssaslığını dəyişdirin;
  • FMR - FM radio səsi parametrləri;
  • Sid - bu parametrə toxunmamaq daha yaxşıdır, əks halda həmsöhbətin səsi ilə bağlı problemlər ola bilər.

Funksiyanı seçdikdən sonra cari siyahıda sürüşdürün, istədiyiniz Dəyəri təyin edin (0-dan 255-ə qədər) və yeni Set parametrlərini tətbiq etmək üçün klikləyin.

Səs səviyyəsini dəyişdirmək üçün əvvəlcədən təyin edilmiş şablonlardan da istifadə edə bilərsiniz - Səviyyə seçimi. Əksər telefonlarda 0-dan 6-a qədər yeddi səviyyə var. Dəyər üçün çox yüksək dəyərlər təyin etmədiyiniz kimi Max Vol parametrinə toxunmamağınız məsləhətdir, əks halda dinamiklərdəki səs hırıldamağa başlayacaq. Digər rejimlər Audio alt bölməsində eyni şəkildə konfiqurasiya edilmişdir.

Bəzi smartfon və planşet modelləri yeni parametrlərin qüvvəyə minməsi üçün yenidən yükləmə tələb edir.

Sıfırlayın

Və bu gün baxacağımız son şey mühəndislik menyusu parametrlərini zavod parametrlərinə sıfırlamaqdır. Dəyişikliklərdən sonra cihaz səhv işləməyə başlasa, lazım ola bilər. Yenidən qurmağın bir neçə yolu var. Sistem normal şəkildə yüklənirsə, parametrlərə keçin və "Bərpa və Sıfırlama" alt bölməsini açın.

Siz həmçinin xüsusi daxil edərək mühəndislik menyusunu yenidən qura bilərsiniz xidmət kodu. Bu adətən *2767*3855#, *#*#7780#*#* və ya *#*#7378423#*#* olur, lakin telefon modeliniz fərqli kod tələb edə bilər.

Başqa bir seçim, yuxarıda qeyd olunan bərpa rejimindən istifadə etməkdir. Buna daxil olmaq üçün bu birləşmələrdən birini istifadə edin:

  • Güc düyməsi + səsi azaltmaq.
  • Güc düyməsi + səsi artırmaq.
  • Güc düyməsi + Əsas düymə + səsi artırma / azaltma.
  • Güc düyməsi + səsi artır + səsi azalt.

Açılan seçimlər siyahısında "məlumatları silmək / zavod parametrlərinə sıfırlama" → "Bəli - bütün istifadəçi məlumatlarını sil" → "sistemi indi yenidən başladın" seçin. Cihaz yenidən başlayacaq və parametrlər sıfırlanacaq.

Mühəndislik menyusu parametrlərini yenidən qurmaq üçün başqa bir yol var, lakin bu, super istifadəçi hüquqlarını tələb edir. Dəstəyi olan istənilən fayl menecerindən istifadə kök hüquqları, sistemin kök kataloquna keçin və sonra qovluğun məzmununun hamısını və ya bir hissəsini silin data/nvram/apcfg/aprdcl və yenidən başladın.

Qovluqdakı fayllar aprdcl yalnız mühəndislik menyusunun parametrlərinə cavabdehdir. Bütün faylları bir anda silmək lazım deyil. Orijinal parametrləri bərpa etmək üçün, deyək ki, audio parametrləri ilə səhv etdinizsə, adlarında audio sətir elementi olan faylları silmək kifayətdir. Və bir an. Onu necə sıfırlamağınızdan asılı olmayaraq, şəxsi məlumatlarınızı və proqramlarınızı həmişə yedəkləyin, çünki hamısı itirilə bilər.

Standart formada Android zəif görünür. Bəli, bütün lazımi funksiyalar orada görünür, lakin batareya faizlərinin ekranını açmaq hələ də mümkün deyil. Yemək gözəl animasiya yükləmələr, lakin onun mənası - sıfır. Mövzulara dəstək olmadı, yox. Bəs indi nə - başqa bir adət qoymaq, sabahkı gecə toplantısı mütləq sönəcək? Xeyr, biz hər şeyi yalnız köklə edəcəyik. Oxuyun və Android interfeysini necə dəyişdirəcəyinizi öyrənin.

HAZIRLIQ ADDIMLARI

Bu məqalədəki fəndlərin çoxu kök və asılı tələb edir. Standart versiyada o, yalnız AOSP proqram təminatında 100% düzgün işləyəcək, lakin hətta onlarda nasazlıqlar ola bilər. Xposed modulları ilə bağlı problemlər tez-tez baş verə bilər fond proqram təminatı istehsalçının dəyişiklikləri ilə, lakin onlar üçün Xposed-in xüsusi bir versiyası var: TouchWiz üçün, MIUI üçün, Android 5.0+ əsasında proqram təminatı üçün. HTC sahibləri rəsmi quruluşu quraşdıra bilərlər, lakin S-OFF demək olar ki, həmişə tələb olunur.

Kök var, Xposed quraşdırılıb? Sonra gedək.

1. YÜKLƏNƏN ANİMASYONUN DƏYİŞMƏSİ

Yükləmə animasiyası /system/media/bootanimation.zip faylında saxlanılır. İçəridə mətn sənədi desc.txt var, o, kadr sürətini, üfüqi və şaquli təsvir ölçüsünü və s. desc.txt-də göstərilən tezliklə dəyişən şəkillərin özləri də (çərçivələr) oradadır. Qovluqlardan animasiya oynatma qaydası və qaydaları da bu faylda göstərilmişdir.

Sizə lazım olan tək şey, kök funksiyası olan fayl menecerindən istifadə edərək arxivi cihazdan çıxarmaq, şəkilləri qablaşdırmadan çıxarıb dəyişdirmək, əvvəlcə onları istədiyiniz qətnamə ilə sıxışdırmağı unutmayın. Sonra arxivi sıxılmadan qablaşdırmaq və yerinə qaytarmaq kifayətdir. Amma təbii ki, hazır arxivi götürmək daha asandır. Saytda hboot.co.uk bunlardan çoxu var.

Digər tərəfdən, animasiyaya baxmaq maraqlı olsa da, heç bir mənası yoxdur. Ancaq hansı xidmətlərin işlədiyini görmək faydalı ola bilər. Ən asan seçim logcat və dmesg, yəni Android və Linux nüvə mesajlarını çıxaran LiveBoot quraşdırmaqdır.

2. SƏSLERİNİZİ STANDART SETƏ ƏLAVƏ EDİN

Səslər / sistem / media / audio qovluqlarından birinə atilə bilər. həyəcan siqnalları - həyəcan melodiyaları;
bildirişlər - bildirişlər üçün səslər;
zəng melodiyaları - zəng melodiyaları;
ui - aşağı batareya, kamera fokusu, interfeys elementlərinin seçimi kimi sistem səsləri. Bəzi proqramlar onlara standart olaraq daxil ola bilər, buna görə də onları öz proqramlarınızla əvəz etmək olar.

Niyə melodiyaları sistem bölməsinə qoyursunuz? Birincisi, oradakı fayllar ümumi zavod parametrlərinə tab gətirə bilir; ikincisi, xüsusi qovluqlardan gələn səslər demək olar ki, hər hansı bir proqramda siqnala (siqnal səsi, zəng, SMS qəbulu) təyin edilə bilər.

3. Şriftlərin DƏYİŞMƏSİ

Bu hərəkətlərin faydalılığına çox, çox şübhə edirəm, çünki standart Android şrifti demək olar ki, mükəmməldir. Amma dadı və rəngi...

Şriftləri quraşdırmaq üçün xüsusi proqramdan istifadə edə bilərsiniz. Məsələn, HiFont şriftləri kök olmadan dəyişməyə imkan verir Samsung proqram təminatı, HTC, Motorola, Lenovo, Huawei, Nokia X. Və əgər kök varsa, o zaman bütün digər cihazlarda. Siz ya proqram kataloqunda mövcud olan şriftlərdən istifadə edə bilərsiniz, ya da öz şriftinizi əlavə edə bilərsiniz.

Amma onları haradan almaq olar? Üç seçim var:

  • Android cihazlarının müxtəlif proqram proqramlarından cırılmış şriftləri w3bsit3-dns.com saytındakı yazıda tapmaq olar;
  • w3bsit3-dns.com növbəti yazıda istifadəçi tərəfindən yaradılmış şriftlərin yaxşı kolleksiyasına malikdir;
  • XDA-da kolleksiya.

Şriftləri xüsusi proqramdan istifadə etmədən quraşdıra bilərsiniz. Arxivdən .ttf faylları götürürük, onları / sistem / şriftlər / (kök lazımdır) ilə əvəz etməklə atırıq və cihazı yenidən başladın.

4. İkonları dəyişdirin

Nişanlar Unicon - Icon Themer kimi xüsusi proqramlardan istifadə etməklə dəyişdirilə bilər. Quraşdırıldıqdan sonra tətbiqi Xposed parametrlərində aktivləşdirməlisiniz (bu sizə xəbər verəcəkdir). Sonra, smartfonunuzu yenidən başladın və proqramı açın. Google Play-dən mövzuları yükləyin üzərinə klikləmək və ikon paketi seçmək, quraşdırmaq və smartfonunuzu yenidən işə salmaq qalır. Ancaq unutmayın ki, Google Start kimi bəzi başlatma qurğularında nişanlar dəyişmir.

5. MÖVZUSUNDA DƏSTƏK ƏLAVƏ EDİN

Mövzunu quraşdırmadan əvvəl HKThemeManager mövzunun tətbiq olunacağı proqramların bütün siyahısını göstərəcək. Lazım olmayanlardan onay işarələrini çıxarın, "Mövzunu Tətbiq et" düyməsini basın və cihazı yenidən başladın.

Mövzuların quraşdırılması üçün alternativ bir seçim də var - Layers Manager tətbiqi. RRO resursunun remapping mexanizmi sayəsində Android 5.0+-da istənilən proqram təminatında işləyir. Tətbiqin mövzu bazası böyükdür və üzərində yerləşir Play market. Onu görmək üçün axtarışda Layers Theme yazın.

Tətbiqin CyanogenMod-a əsaslanan proqram təminatında işləmədiyini unutmayın: mühərrik və RRO arasında ziddiyyət var.

6. ANDROID 5.X+ ANDROID N-Ə DÖNDÜRÜN

Bu işdə bizə Android N-ify modulu kömək edəcək. Quraşdırıldıqdan sonra Android N-dən aşağıdakı çiplər görünəcək:

  • Bildiriş panelinin dizaynı nəzərəçarpacaq dərəcədə dəyişəcək. Tez parametrlər paneli görünəcək;
  • bəzi elementlərin altındakı parametrlərdə maraqlı yazılar olacaq.
  • Məsələn, Wi-Fi altında cari giriş nöqtəsinin adı, "Batareya" maddəsinin altında qalan iş vaxtı və batareyanın doldurulması faizlə yazılacaq;
  • Pasxa yumurtaları "Telefon haqqında" menyusunda dəyişəcək;
  • son iki işləyən proqram arasında sürətli keçid "Son" düyməsini iki dəfə klikləməklə görünəcək.

Android N-ify həmçinin faydalı parametrlərə malikdir, onların vasitəsilə nəinki söndürə, həm də fərdi dəyişiklikləri konfiqurasiya edə bilərsiniz.

7. STATUS BARINI TƏKMİL EDİN

Mənim üçün Android fondunda status çubuğu ən inkişaf etməmiş şeydir. Xoşbəxtlikdən, Xposed ilə siz çox şey dəyişə və onu daha rahat edə bilərsiniz.

8. Batareyanın göstəricisini dəyişdirin

Battery Home Icon, ev düyməsinin əvəzinə batareya göstəricisini quraşdırır. Üstəlik, bu göstərici fərdiləşdirməyə yaxşı kömək edir: siz rəngləri dəyişdirə, faiz ekranını yandıra / söndürə, şarj animasiyasını və s.

XbatteryThemer - batareya simvolunun qurulması. Həm adi, həm də çox qeyri-adi olan çoxlu müxtəlif mövzular var.

9. İnternet bağlantısının sürətini göstəririk

Şəbəkə sürətinin göstəricisi - şəbəkə sürətinin göstəricisi. Mobil şəbəkələrin, Wi-Fi, Bluetooth, Ethernet sürətini göstərə bilir. Hər şey konfiqurasiya edilə bilər - ölçü vahidlərindən və sürət həddindən tutmuş rəng və şrift ölçüsünə qədər. Siz həmçinin DataUsage istifadə edərək status çubuğuna istifadə olunan İnternet trafikinin miqdarını əlavə edə bilərsiniz. Göstərilən məlumatlar parametrlərin "Məlumatların ötürülməsi" bölməsində olduğu kimidir.

10. Həqiqi siqnal səviyyəsini göstərin

Bəzən internetin otağın müxtəlif yerlərində nə qədər yaxşı tutduğunu, smartfonun mövqeyinin siqnal qəbul səviyyəsinə necə təsir etdiyini bilmək lazımdır və ya sadəcə olaraq smartfonun və digər modellərin siqnal qəbul səviyyəsini müqayisə etmək lazımdır. NetStrength bu işdə kömək edəcək. Modul mobil şəbəkənin siqnal səviyyəsini desibeldən millivatta (dBm və ya dBm) göstərə bilər. Bu ölçü vahidi var mənfi məna, və sıfıra nə qədər yaxın olarsa daha yaxşı qəbul. Siz həmçinin ASU displeyini (İxtiyari Güc Vahidi - pilot kanalda siqnal-küy nisbəti) yandıra bilərsiniz. ASU = (dBm + 113)/2 düsturu ilə hesablanır.

Yeri gəlmişkən, modul Wi-Fi qəbulunun səviyyəsini dBm, Mbit / s (Mbps - saniyədə meqabit) və faizlərlə göstərə bilər.

11. Yükləmə prosesinə nəzarət edin

Statusbar Download Progress ən faydalı Xposed modullarından biridir. O, Play Market-dən yükləmə prosesini və ya İnternetdən faylı status çubuğunun üstündə nazik ağ çubuq kimi göstərir. Dərhal "Tanrı rejimi"ni aktivləşdirməyi tövsiyə edirəm, bunun sayəsində tərəqqi çubuğu olan hər hansı bir tətbiq üçün tərəqqi göstəriləcəkdir. Parametrlərdə siz ekranı status çubuğunun üstündə və ya xəttin altına qoya bilərsiniz.

Bir zamanlar, təxminən 5 il əvvəl cihazlarla əməliyyat sistemi Android. Yaxşı vaxt idi, dünya böhrandan çıxırdı, qarşıda çox maraqlı şeylər var idi və hər cihazda Menyu düyməsi var idi.
2 ildən sonra Android-dən olan uşaqlar cihazın korpusundakı "menyu" düyməsinin artıq dəbdə olmadığını və onsuz da edilə biləcəyini bildirdilər. O vaxtdan bəri hər birimiz (Yaradıcılar Gildiyası) android cihazlarının böyük əksəriyyətində menyunu necə açmağı bilirik.
Bəzilərinə bu, dəhşətli düyməli akkordeon kimi görünəcək, elə də olsun, amma keçən həftə həyatımızın 2 saatını istifadəçiyə bunu izah etməyə sərf etdik. Buna dözmək mümkün deyildi, buna görə aşağıda android cihazlarında menyu funksiyasını necə çağırmağın təsvirini verirəm.
Ən çox yayılmış cihazlarda mexaniki menyu düymələri belə görünür:

Üstəlik, əksər hallarda menyu funksiyasını çağırmaq üçün bir qısa toxunuş kifayətdir. Bununla belə, tez-tez işləyən proqramları seçmək üçün düyməyə menyu çağırışı əlavə edilə bilər. Bu belə görünür:


Bu vəziyyətdə menyu açılacaqdır yalnız uzun basmaqla(sözdə uzun klik)! Yəni sadəcə barmağını göstərmədi, soxdu və tutdu. Çoxları bundan sonra deyir Vay!

Planşet sahiblərinə ekranın iş sahəsinə diqqət yetirməyi məsləhət görürəm, düymələr ən çox orada yerləşir, o cümlədən Menyu.


Həmişə mümkün qədər sağa deyil, amma bu düymə tam olaraq belə görünür.
Təzə Android versiyaları OS menyu düyməsi belə görünür.

təlimin ilk ayı. Menyuya daha yaxından nəzər salaq. Həm köhnə Android 2.3 cihazları, həm də yeni Android 4.0 telefonları nəzərdən keçiriləcək.

Seçimlər Menyu

Menyuya sinif cavabdehdir android.view.Menyu. Hər bir fəaliyyət bir menyu obyekti ilə əlaqələndirilir. Menyunun özündə menyu elementləri var (sinif android.view.MenuItem) və alt menyu (sinif android.view.SubMenu).

Bir düyməni basdığınız zaman Menyu köhnə telefonlarda fəaliyyətə əlavə edilmiş menyu elementləri dəsti görünür. Menyuda nişanlar ola bilər. Belə bir menyuda altı maddə ola bilər (bir qayda olaraq). Altıdan çox element varsa, genişləndirilmiş menyu istifadə olunur - bu halda altıncı elementin əvəzinə element görünür Seçimlər(daha çox). Bu elementə basıldıqda, seçim menyusunun əsas hissəsinə uyğun gəlməyən elementlərin siyahısı ilə genişləndirilmiş menyu göstərilir.

Menyu ilk dəfə açıldığında, Android metodu çağırır onCreateOptionsMenu(), obyekti parametr kimi ötürmək Menyu. Menyular XML faylında resurslar kimi yaradıla bilər və ya istifadə edə bilərsiniz əlavə et().

Standart bir layihədə, adi bir şablon seçərkən, bir nöqtəli menyu üçün artıq boşluq var Parametrlər və menyu üçün bir metod çağırışı (bu barədə artıq bilirsiniz).

Resurslardan istifadə edərək menyunun yaradılması

Resurslar vasitəsilə menyu ilə işləməyi düşünün. Menyu yaratmaq üçün XML faylında saxlanmalı olan resurslardan istifadə edilir. Faylın özü qovluqda olmalıdır res/menyu/ sizin layihəniz. Menyu aşağıdakı elementlərdən ibarətdir:

Menyu elementlərini ehtiva edən menyunu təyin edir. Element faylın XML strukturunda kök element olmalıdır və bir və ya bir neçə elementdən ibarət ola bilər Birbaşa menyu elementləri yaradır. Bu elementin daxili elementi ola bilər alt menyu yaratmaq üçün İsteğe bağlı olaraq, görünməz element konteynerindən də istifadə edə bilərsiniz . Bu, bəzi effektlərə nail olmağa imkan verir

Tutaq ki, hansısa oyun üçün menyudan istifadə etmək qərarına gəldik. Gəlin yeni fayl yaradaq game_menu.xml:

İki maddədən ibarət bir menyu yaratdıq. Hər bir elementə aşağıdakı atributlar daxildir:

Android:id İstifadəçinin menyu elementini seçdiyi zaman tətbiqin tanıya biləcəyi menyu elementinin identifikatoru android:title Menyuda görünəcək mətn

Element üçün başqa atributlar da var maddə, Misal üçün android:icon="@drawable/home" menyu elementi üçün işarəni də göstərəcək və android:enabled="false" menyu elementini əlçatmaz etməyə imkan verir.

Atribut android:titleQısaldılmış adi başlıq seçilmiş menyu elementinə "sığdırmaq" üçün çox geniş olduqda istifadə olunur.

Atribut android:orderInCategory MenuItems menyu elementlərinin göstərilmə sırasını müəyyən edir.

Menyu yaratarkən biz string resurslarına işarə etdik @string/new_game@string/help. Fayla yeni sətirlər əlavə etmək lazımdır strings.xml:

Yeni oyun İstinad

İndi menyunun göstəriləcəyi fəaliyyət sinfində dəyişikliklər etməliyik. Proqram yaratdığımız menyu resursunu proqram obyektinə çevirməlidir. Bunun üçün xüsusi bir üsul var. MenuInflater.inflate(), xüsusi geri çağırış metodunda çağırılır onCreateOptionsMenu(). Bu üsul düyməyə basıldıqda menyunu göstərmək üçün nəzərdə tutulmuşdur. MENU cihazda:

@İctimai məntiqi onCreateOptionsMenu(Menyu menyusu) ( MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.game_menu, menu); true qaytarın; )

Kodu yerləşdirdikdən sonra inkişaf mühiti sizdən çatışmayan ad boşluqlarını idxal etməyinizi xahiş edəcək.

android.view.Menyu idxal edin; idxal android.view.MenuInflater;

Metod onCreateOptionsMenu() metod ekranda menyunun ilk görünüşünü işə salır və parametr kimi Menyu obyektini götürür (köhnə qurğular üçün). Siz menyuya keçidi saxlaya və kodunuzun istənilən yerində metoddan asılı olmayaraq istifadə edə bilərsiniz onCreateOptionsMenu() bir daha çağırılmayacaq. Siz həmişə bu işləyicinin ana sinif tətbiqindən istifadə etməlisiniz, çünki lazım olduqda menyuya avtomatik olaraq əlavə sistem elementləri daxildir. Yeni cihazlarda metod fəaliyyət yaradıldıqda çağırılır. Metod bir dəyər qaytarmalıdır doğru menyunu ekranda görünən etmək üçün.

Proqramı işə saldıqdan sonra düyməni basın MENU yaradılmış menyunu görmək üçün emulyatorda.

Metod getMenuInflater() sinfin bir nümunəsini qaytarır menyu şişirdici XML-dən menyu məlumatlarını oxumaq üçün istifadə etdiyimiz.

Gördüyünüz kimi, menyu ekranın aşağı hissəsində görünür. Cəmi altı menyu elementi eyni vaxtda göstərilə bilər. Daha çox xal varsa, beş xal və altıncı nöqtə göstərilir Daha çox, bu sizə qalan elementləri görməyə imkan verəcək. Yeni menyu elementlərini sınaqdan keçirək və əlavə edək.

Əvvəlcə altı xal əlavə edək.

Menyuya daha bir maddə əlavə edək ki, onlardan yeddisi olsun.

Menyu elementlərinin seçilməsi

Menyu yaratmağı öyrəndik. Ancaq bu günə qədər faydasızdır, çünki menyu maddələri kliklərimizə heç bir şəkildə reaksiya vermir. Metod menyu elementlərinə klikləri idarə etmək üçün istifadə olunur. onOptionsItemSelected(). Metod istifadəçi tərəfindən seçilmiş elementi tanıyır Menyu elementi. İndi zəng edərək seçilmiş elementi müəyyən edə bilərik getItemId(), menyu elementinin identifikatorunu qaytarır. Daha sonra operator vasitəsilə keçid Bizə lazım olan əmrləri müəyyən etmək qalır:

@Override public boolean onOptionsItemSelected(MenuItem element) ( // Seçilmiş menyu elementi keçidi üçün əməliyyatlar (item.getItemId()) ( case R.id.new_game: newGame(); return true; case R.id.help: showHelp(); return true; default: return super.onOptionsItemSelected(MenuItem element) () public. setText("Yeni oyun elementi seçildi"); ) ictimai etibarsız showHelp() ( edtext.setText("Yardım elementi seçildi"); )

Proqramı işə salın, menyunu çağırın və birinci və ya ikinci menyu elementini seçin. Mətn qutusunda bir mesaj görünməlidir.

Verilmiş nümunədə getItemId() seçilmiş menyu elementi üçün ID tələb edir və keçid seçimi bəyanatı vasitəsilə XML resurslarında təyin etdiyimiz identifikatorlarla müqayisə etməyə başlayır. Tələb olunan identifikator tapıldıqda, verilmiş menyu elementinin işləyicisi yerinə yetirilir. Proqram heç nə tapmasa, o zaman bəyanat icra olunur default, bu super sinfi qaytarır.

Android 3.0-da siz atribut əlavə edə bilərsiniz android:onclick menyu resurslarında və artıq istifadə etmək lazım deyil onOptionsItemSelected(). Köməyi ilə android:onclick dəqiqləşdirə bilərsiniz istədiyiniz üsul menyu elementini seçərkən.

// menyu elementi atributu android üçün təyin edildi:onClick="onMenuClick" ictimai etibarsız onMenuClick(MenuItem element)( edtext.setText("Seçilmiş pişiyi qidalandırın"); )

Proqramlı olaraq menyunun yaradılması

Şəklin tamlığı üçün menyunun proqram yaradılmasını nəzərdən keçirək. Menyu elementləri üçün bir neçə sabit təyin etməliyik:

// menyu elementləri üçün identifikatorlar şəxsi statik final int IDM_OPEN = 101; şəxsi statik yekun int IDM_SAVE = 102; ictimai boolean onCreateOptionsMenu(Menyu menyusu) ( // menyu elementləri əlavə et menu.add(Menu.NONE, IDM_OPEN, Menu.NONE, "Açıq"); menu.add(Menu.NONE, IDM_SAVE, Menu.NONE, "Save"); )

Metodda əlavə et() dörd variant var:

  • qrup identifikatoru - menyu elementini bu menyudakı digər elementlər qrupu ilə əlaqələndirməyə imkan verir
  • menyu elementi seçimi hadisəsi idarəedicisi üçün element identifikatoru
  • menyudakı elementin sırası - menyudakı mövqeyi müəyyən etməyə imkan verir. Varsayılan olaraq (Menu.NONE və ya 0) maddələr kodda göstərilən ardıcıllıqla gedir
  • başlıq - menyu elementində göstərilən mətn. Siz simli resursdan istifadə edə bilərsiniz

Metod obyekti qaytarır Menyu elementi quraşdırmaq üçün istifadə edilə bilər əlavə xüsusiyyətlər məsələn, ikona, isti düymə və s. təyin etmək üçün.

Əgər nişanlar ilə menyu yaratmaq istəyirsinizsə, o zaman metoddan istifadə edin setIcon()

Menu.add(Menyu.NONE, IDM_OPEN, Menu.NONE, "Açıq") .setIcon(R.drawable.icon_menu_open);

Yenə xatırlayın ki, nişanlar yalnız altı menyu elementinə əlavə edilə bilər (və ya altıdan çox element varsa beş).

Metod onCreateOptionsMenyu menyu yaradılan zaman sistem tərəfindən yalnız bir dəfə çağırılır. Proqram işləyərkən menyunu yeniləmək lazımdırsa, geri çağırış metodundan istifadə edin onPrepareOptionsMenu().

Menyu elementi seçildikdə, metod çağırılır onOptionsItemSelected, obyektin yanından keçən Menyu elementi- istifadəçi tərəfindən seçilmiş menyu elementi. Metoddan istifadə GetItemId seçilmiş menyu elementinin identifikatorunu əldə edə bilərsiniz. Menyu elementini müəyyən etdikdən sonra menyu seçimi hadisəsini idarə etmək üçün kod yaza bilərsiniz:

İctimai məntiqi onOptionsItemSelected(MenuItem elementi) ( keçid (item.getItemId()) halda IDM_OPEN: doğru qaytar; hal IDM_SAVE: doğru qaytar; yalan qaytar; )

İsti düymələr

Siz həmçinin bir neçə üsuldan istifadə edərək klaviatura simvollarından istifadə edərək sürətli giriş üçün isti düymələri təyin edə bilərsiniz:

  • setAlphabeticShortcut(char) - simvol əlavə edir
  • setNumericShortcut(int) - nömrə əlavə edir
  • setShortcut(char, int) - Simvol və nömrə birləşməsini əlavə edir

Məsələn, setAlphabeticShortcut("q") düyməsini təyin etsəniz, o zaman menyunu açdığınız zaman (və ya MENU düyməsini basıb saxlayaraq) düyməni sıxın. Q bu menyu elementini seçir. Bu isti düymə (və ya klaviatura qısa yolu) menyu elementinin adının altında göstərilən alət ipucu kimi göstəriləcək. Daha yeni klaviaturalarda ayrıca düymə var ctrl, bu adi klaviaturalarda olduğu kimi işləyir.

İsti düymələr XML vasitəsilə də yaradıla bilər: android:alphabeticShortcut="c".

Siz fəaliyyət metodu ilə klikləri idarə edə bilərsiniz onKeyShortcut():

@İctimai boolean onKeyShortcut(int keyCode, KeyEvent hadisəsi) ( keçid (keyCode) ( keyEvent.KEYCODE_R halı: Toast.makeText(bu, "Cavab", Toast.LENGTH_SHORT).show(); doğru qaytarın; default: super.onKeyShortcut, hadisəni qaytarın);(keyCode))

Alt menyunun yaradılması

Başqa bir alt menyudan başqa istənilən menyuya alt menyu əlavə edilə bilər. Alt menyu geri çağırış metodunda yaradılır onCreateOptionsMenu() metodundan istifadə etməklə addSubMenu() hansı obyekti qaytarır alt menyu. Etiraz etmək alt menyu metoddan istifadə edərək bu menyuya əlavə maddələr əlavə edə bilərsiniz əlavə et(). Misal üçün:

İctimai statik yekun int IDM_HELP = 101; ictimai statik yekun int IDM_NEW = 201; ictimai statik yekun int IDM_OPEN = 202; ictimai statik yekun int IDM_SAVE = 203; ictimai statik yekun int IDM_CUT = 301; ictimai statik yekun int IDM_COPY = 302; ictimai statik yekun int IDM_PASTE = 303; @İctimai məntiqi onCreateOptionsMenu(Menyu menyusu) (AltMenyu subMenuFile = menu.addSubMenu("Fayl"); subMenuFile.add(Menu.NONE, IDM_NEW, Menu.NONE, "Yeni"); subMenuFile.add(Menu.NONE, IDMuPen. NONE, IDM_SAVE, Menu.NONE, "Save"); SubMenu subMenuEdit = menu.addSubMenu("Edit"); subMenuEdit.add(Menu.NONE, IDM_CUT, Menu.NONE, "Cut"); subMenuEdit.add(Menu.NONE, IDM_COPY, IDM_COPY, "IDM_COPY,"IDM_COPY, "IDM_NONE, Menu."NONED; TE, Menu.NONE, "Yapışdır"); menu.add (Menyu.NONE, IDM_HELP, Menu.NONE, "Yardım"); super.onCreateOptionsMenu(menyu) qaytarın; ) @İctimai məntiqi onOptionsItemSelected(MenyuItem elementi) (CharSequence mesajı; dəyişdirin (element.NONE)Bölünmə mesajı (item.NONE;Neget item) ; case IDM_OPEN: message = "Seçilmiş elementi açın"; break; case IDM_ SAVE: message = "Seçilmiş saxla"; break; case IDM_CUT: message = "Seçilmiş kəsin"; break; case IDM_COPY: message = "Selected copy"; fasilə; case IDM_PASTE: message = "Seçilmiş yapışdırın"; fasilə; case IDM_HELP: message = "Yardım elementi seçildi"; fasilə; default: false qaytarın; ) // seçilmiş menyu elementi haqqında bildiriş göstərin Toast toast = Toast.makeText(bu, mesaj, Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); doğru qayıt; )

İndi menyu elementini seçdiyiniz zaman alt menyusu olan başqa bir pəncərə görünəcək. Özünüz cəhd edin.

Onay qutularının və radio düymələrinin əlavə edilməsi

Menyu elementlərinə qeyd qutuları və ya radio düymələri əlavə edə bilərsiniz. Fərdi menyu elementi üçün onay qutusu və ya radio düyməsi əlavə etmək üçün metoddan istifadə etməlisiniz setCheckable():

MenuItem element = menu.add(0, IDM_FORMAT_BOLD, 0, "Qalın"); item.setCheckable(doğru);

Onay qutuları və ya radio düymələri ilə bir neçə menyu elementi əlavə etmək zərurəti varsa, ayrı bir identifikator yaratmaqla onları menyu qruplarına birləşdirə bilərsiniz. Menyu elementi qrupa metod vasitəsilə əlavə olunur əlavə et(), ona menyu qrupunun identifikatorunu ilk parametr kimi ötürür. Deyək ki, biz Rəng menyu qrupu və rəngi təyin etmək üçün menyu elementləri üçün ID elan etdik:

İctimai statik yekun int IDM_COLOR_GROUP = 400; ictimai statik yekun int IDM_COLOR_RED = 401; ictimai statik yekun int IDM_COLOR_GREEN = 402; ictimai statik yekun int IDM_COLOR_BLUE = 403;

İndi onay qutuları ilə menyu qrupu yaratmaq üçün hər menyu elementinə qrup ID təyin etməli və metodu çağırmalısınız. setGroupCheckable() bütün qrup üçün (bu halda metodu çağırmağa ehtiyac yoxdur setCheckable() hər menyu elementi üçün):

SubMenu subMenuColor = menu.addSubMenu("Rəng"); subMenuColor.add(IDM_COLOR_GROUP, IDM_COLOR_RED, Menyu.NONE, "Qırmızı"); subMenuColor.add(IDM_COLOR_GROUP, IDM_COLOR_GREEN, Menu.NONE,"Yaşıl"); subMenuColor.add(IDM_COLOR_GROUP, IDM_COLOR_BLUE, Menyu.NONE, "Mavi"); subMenuColor.setGroupCheckable(IDM_COLOR_GROUP, doğru, yalan);

Metodda setGroupCheckable()üç variant:

  • birinci parametr menyu qrupunun identifikatorudur;
  • qrupda radio düymələri və ya onay qutularına icazə verilirsə, ikinci parametr doğrudur;
  • üçüncü parametr - menyu elementlərinin tək (doğru) və ya çoxlu (yanlış) seçimini təyin edir. Bu parametr əslində menyunun görünüşünü müəyyən edir - bu, radio düymələri və ya onay qutuları olan bir menyu olacaq.

    Menyu elementinin seçimi hadisəsi idarəedicisində qeyd qutularının və radio düymələrinin vəziyyətinə nəzarət etmək üçün aşağıdakıları yazın:

    @Override ictimai boolean onOptionsItemSelected(MenuItem element) ( CharSequence message; switch (item.getItemId()) ( ... case IDM_COLOR_RED: // item.setChecked(!item.isChecked()); message = "Rəng Qırmızı" qaytarın; break; false;

    Layihəni işə salın, menyunu çağırın və menyu elementini seçin Rəng. Bayraqlar şəklində üç elementdən (Qırmızı, Yaşıl, Mavi) bir alt menyunuz olacaq. Yoxlama qutularının və açarların vəziyyəti proqram kodunda işlənir və menyu yenidən çağırıldıqda saxlanılır.

    Bu hadisə onMenuItemClickListener (köhnəlmişdir) və ya onOptionsItemSelected işləyiciləri tərəfindən tutulmayıbsa, siz setIntent() metodu ilə seçilmiş menyu elementinə dərhal niyyət təyin edə bilərsiniz, bu element kliklədikdə işə başlayacaq. Tətikləndikdən sonra niyyət startActivity metoduna ötürülür.

    MenuItem.setIntent(yeni Niyyət (bu, MyOtherActivity.class));

    Menyunun proqramlı şəkildə açılması və ya bağlanması

    Əgər nədənsə menyunu proqramlı şəkildə açmaq lazımdırsa (məsələn, nümayiş məqsədləri üçün), onda metoddan istifadə edin. openOptionsMenu():

    OpenOptionsMenu();

    Menyunu proqramlı şəkildə bağlamaq üçün metoddan istifadə edin closeOptionsMenu(), lakin metoda təkrar zəngim var openOptionsMenu() menyunu da bağlayır.

    Menyu elementinin proqramlı şəkildə çıxarılması

    Tutaq ki, biz xml faylında menyu elementini təyin etdik:

    Pişik proqramımızdan açıq-aydın lazımsız menyu elementini silmək üçün metod vasitəsilə menyu elementinə daxil olmalıyıq. findItem() və onu görünməz hala gətirin. Menyu obyektinə istinad metoda ötürülməlidir onCreateOptionsMenyu belə ki, proqram menyunun tərkibindəki dəyişikliyi öyrənsin.

    // sinif dəyişəni Menyu menyusu; @Override ictimai boolean onCreateOptionsMenu(Menyu menyusu) ( super.onCreateOptionsMenu(menu); // obyektimizə istinad keçir this.menu = menu; getMenuInflater().inflate(R.menu.test, menu); qaytarın doğru; ) // düyməsinə klikləyin public void onClick(View v)=tələb olunursa (menyu tapın). Item(R .id.action_dog); // onu görünməz etmək item_dog.setVisible(false); ) )

    Ancaq bu həllin bir çatışmazlığı var, əgər ekranı fırladıqsa, fəaliyyət yenidən yaradılacaq və uzaq menyu yenidən görünəcək. Çirkin itdən necə qurtula bilərik?

    Menyu elementinin vəziyyətini yadda saxlamalı və metodda Bundle tipli obyektdə saxlamalıyıq onSaveInstanceState, və üsulda onCreate() saxlanmış vəziyyəti gətirin və metoda keçin OnPrepareOptionsMenyu, menyu ekranda görünməzdən əvvəl çağırılır:

    Paket en.alexanderkimov.test; android.app.Activity idxalı; android.os.Bundle idxalı; idxal android.view.Menu; android.view.MenuItem idxalı; android.view.View idxal; ictimai sinif TestActivity Fəaliyyəti genişləndirir ( Menyu menyusu; Boolean savedMenuDogIsVisible; yekun statik String KEY_MENU_DOG = "KEY_MENU_DOG"; @Override public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceViewState(); setContent.vite.vite.viiout if); (savedInstanceState != null) ( savedMenuDogIsVisible = savedInstanceState.getBoolean(KEY_MENU_DOG, true); ) ) @İctimai mantiqi ləğv edin onCreateOptionsMenu(Menyu menyusu) ( super.onCreateOptionsMenu(menu); this.menu(returnMenu(fl);returistMenu(fl.menu); ) public void onClick(View v) ( if (menyu != null) ( MenuItem item_dog = menu.findItem(R.id.action_dog); // gizlət menyu elementi_dog.setVisible(false); ) ) @Override protected void onSaveInstanceState(Bundle-Stateonstout)(Bundle-Stateonstout(Bundle-Stateonst) State); if (menyu != null) ( MenuItem item_dog = menu.findItem(R.id. action_dog); // menyu elementinin cari vəziyyətini yadda saxlayın - true və ya false outState. putBoolean(KEY_MENU_DOG, item_dog.isVisible()); ) ) @PrepareOptionsMenu (Menyu menyusu) (əgər (savedMenuDogIsVisible != null)) ( MenuItem item_dog = menu.findItem(R.id.action_dog); // menyu elementinin istənilən vəziyyətini göstərməzdən əvvəl item_dog.set (Menyu menyusu) səciyyəvidir. sMenyu(menyu); ) )

    Menyu düyməsinin mövcudluğunu aşkar edin

    Köhnə cihazlar real Menyu düyməsini istifadə edirdi. Yeni versiyalarda android menyu ActionBar-da silindi və onun ayrıca düymə kimi olması isteğe bağlı oldu. Ancaq bir çox istehsalçı hələ də menyu düyməsi olan telefonlar istehsal edir. Belə bir düymənin olub olmadığını müəyyən etmək üçün Android 14 əlavə etdi yeni üsul, bu düymənin mövcudluğunu müəyyən edəcək.

    Əgər(Build.VERSION.SDK_INT<= 10 || (Build.VERSION.SDK_INT >= 14 && ViewConfiguration.get(this) .hasPermanentMenuKey())) ( // menyu düyməsi mövcuddur Toast.makeText(bu, "Menyu düyməsidir", Toast.LENGTH_LONG).show(); ) else ( // Toast.makeText menyu açarı yoxdur(bu, "Menyu Düyməsi yoxdur).

    Menyu üçün işarələmə

    Müasir cihazlarda menyu bir hissəsidir Fəaliyyət paneli. Siz XML vasitəsilə menyu tərtibatını fərdiləşdirə bilərsiniz.

    Deyək ki, siz bu seçimi seçdiniz:

    Atributda showAsAction dəyərindən istifadə etməyin heç vaxt, əks halda işarələməni görməyəcəksiniz. İşarələmənin özü atribut vasitəsilə müəyyən edilir actionLayout. İşarələmə kodu:

    Menyu fraqmentlərdə

    Menyu təkcə fəaliyyətin bir hissəsi deyil, həm də fraqmentin bir hissəsi ola bilər. Əməliyyat prinsipi praktiki olaraq eynidır. Fraqmentin müvafiq metodu var.

    @CreateOptionsMenu (Menyu menyusu, MenuInflater inflater) ( super.onCreateOptionsMenu(menyu, şişirici); inflater.inflate(R.menu.fragment_crime_list, menu); )

    FragmentManager zəngə cavabdehdir onCreateOptionsMenu() fəaliyyət geri çağırış qəbul etdikdə onCreateOptionsMenu() sistemdən. Menecerə açıq şəkildə bildirməlisiniz FragmentManager fraqment çağırılmalıdır onCreateOptionsMenu(). Bunun üçün metod çağırılır setHasOptionsMenu():

    // Fraqment kodunda @Override public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setHasOptionsMenu(true); getActivity().setTitle(R.string.cat); ... )

Android bir neçə növ menyunu dəstəkləyir. Birincisi - telefonda ayrıca bir düymə var Menyu(köhnə telefonlarda), menyunu gətirən düyməni basmaq. Yeni cihazlarda ayrıca bir düymə çıxarıldı, onu şaquli oriyentasiyada üç nöqtə şəklində menyu simvolu ilə əvəz etdi. İkinci növ, barmağınızı ekranda lazımi yerdə basıb saxladığınız zaman görünən kontekst menyusudur (həmçinin telefonunuzun mərkəzi düyməsini basıb saxlaya bilərsiniz). Kontekst menyusu öz növbəsində alt menyulara malik ola bilər. Bu gün biz menyunun birinci növü ilə tanış olacağıq. Bu yazı altında yeni cihazlarda menyu ilə işləməyi nəzərdən keçirəcək Android nəzarəti 4.0 və yuxarı.

Şablonda boş fəaliyyət menyu yoxdur, ona görə də onu özümüz yaradacağıq. Bu, onun necə işlədiyini başa düşməyə və layihə haqqında ümumi fikir əldə etməyə kömək edəcək. Menyu elementlərinin seçimini idarə etmək üçün siniflərin, metodların və kodun adlarını yadda saxlamaq lazım deyil. Digər şablonlarda menyu qurulacaq və siz ondan dərhal istifadə edə bilərsiniz.

Yaradın yeni layihəəsaslanır boş fəaliyyət və idarə edin. Hələ menyu yoxdur.

Faylda çoxlu sətir resursları yaradın res/values/strings.xml, menyu maddələrinə cavabdeh olacaq:

Parametrlər pişik pişik Kitty

İndi yeni bir qovluq yaradın menyu qovluğunda res res, | Yeni | kataloq). Sonra, yaradılmış qovluqda bir fayl yaradın menu_main.xml- ad menyunun əsas fəaliyyətə aid olduğunu göstərir Əsas Fəaliyyət(qovluğun üzərinə sağ vurun menyu | Yeni | Menyu Resurs Faylı). Çox ekranlı bir proqram yaratsanız, hər bir fəaliyyətin öz parametrləri ilə ayrıca menyusu olacaq. Faylı açarkən menu_main.xml və yaranan şablona kodumuzu əlavə edin:

Faylı açaq Əsas Fəaliyyət. Hal-hazırda bunun yalnız bir üsulu var. onCreate(). Yeni bir üsul əlavə edək onCreateOptionsMenu(). Fəaliyyətdə menyunun görünüşünə cavabdeh olan bu üsuldur. Studiya menyusundan seçin Kod| və növbəti pəncərədə metodun adını ilk hərflərlə yazmağa başlayın. Siz ilk böyük hərflərlə daxil edə bilərsiniz, yəni. ocom( o n C dərəcəsi O seçimlər M enu) istədiyiniz sətri tez tapmaq üçün. Düyməni basırıq tamam və iş parçasını alırıq.

@ictimai məntiqi onCreateOptionsMenu(Menyu menyusu) ləğv et ( super.onCreateOptionsMenu(menyu); ) qaytarın

Hazırlığa menyu resurslarından məlumatları götürən və onları ekranda menyu elementlərinə çevirən bir üsul əlavə edirik.

@CreateOptionsMenu (Menyu menyusu) ictimai məntiqini ləğv edin ( getMenuInflater().inflate(R.menu.menu_main, menyu); doğru qaytarın; )

Metodda şişirtmək() siz menyu resursuna işarə edirsiniz ( R.menu.menu_main) və sinif obyekti Menyu.

İngilis dilində "inflate" inflate kimi tərcümə olunur, yəni. Android tərtibatçıları tərəfindən təsəvvür edildiyi kimi, biz bir obyekti məlumatlarla, məsələn, menyu ilə şişirdirik. Amma əslində “şişirmək” sözü ifadədən gəlir düz- mənzilə. Evin bütün künclərini araşdıran və orada yaşamağa razılığını bildirən ilk pişiyi mənzilə salmaq üçün köhnə bir ənənə var. Beləliklə, biz XML faylından məlumatları MenuInflater obyektinə daxil edirik.

Layihəni icra edin. İndi başlığın sağ tərəfində şaquli xəttdə düzülmüş üç nöqtədən ibarət bir işarəni görəcəksiniz. Menyu elementini görmək üçün işarəni vurun Parametrlər.

Təxmin etmək çətin olmadığı üçün element maddə ayrıca menyu elementinə cavabdehdir. Eyni şəkildə menyunun yalnız identifikatorunu və mətnini dəyişdirərək daha üç element əlavə edək:

Layihəni işə salın və menyunu yenidən açmağa çalışın. Siz üç yeni element görəcəksiniz.

Seçimlər idbaşlıq izaha ehtiyac yoxdur. Parametr orderInCategoryöz menyu elementinizin göstərilməsi qaydasını təyin etməyə imkan verir. Tutaq ki, siz beş menyu elementi yaratmısınız, lakin onların ekranda göstərilmə ardıcıllığına hələ qərar verməmisiniz. İstədiyiniz ardıcıllıqla menyu elementləri üçün bütün kod bloklarını daim köçürməmək üçün bu seçimdən istifadə edə bilərsiniz.

Və nəhayət, vacib bir atribut proqram: showAsAction-də menyunun davranışını müəyyən edir Fəaliyyət paneli. Məna heç vaxt o deməkdir ki, menyu elementi başlıqda deyil, yalnız açılan menyuda göstərilməlidir, yəni. üç nöqtənin arxasında olun. Dəyəri təyin etsəniz həmişə, sonra işarə edin Parametrlər dərhal tətbiqinizin başlığında görünəcək. Həmçinin mövcud dəyərlər ifOtaqlar, Mətn iləcollapseActionView. Özünüz cəhd edin. Misal üçün, ifOtaq Boşluq icazə verərsə, menyu elementini göstərir. Əgər xallar çox olarsa, o zaman onlar ancaq mane olacaqlar. Bir qayda olaraq, bu variantda onlar çox çıxış edirlər qısa söz və ya işarəsi tez-tez əməliyyatlarüç nöqtəyə lazımsız klikləməyin qarşısını almaq üçün.

Atributuna diqqət yetirin proqram: showAsAction, ad sahəsinə aid olan xmlns:app="http://schemas.android.com/apk/res-auto". Vaxt var idi ki, belə bir ad sahəsi mövcud deyildi və layihələr atributdan istifadə edirdi android:showAsAction standart ad sahəsindən. Studiya səhvi söyəcəksə, kodu redaktə edin.

Menyu maddələri faydalı iş görərkən. Elementə hər hansı bir klik görünən nəticələr olmadan sadəcə menyunu bağlayır. Klikləri idarə etmək üçün kodu hələ yazmamışıq.

Menyu elementlərinin seçilməsi

Menyu yaratmağı öyrəndik. Ancaq bu günə qədər faydasızdır, çünki menyu maddələri kliklərimizə heç bir şəkildə reaksiya vermir. Menyu kliklərini idarə etmək üçün başqa bir üsul istifadə olunur. onOptionsItemSelected(). Əvvəlki nümunədə olduğu kimi bir metod əlavə edək. Gəlin hazırlaşırıq.

@OnOptionsItemSelected ictimai məntiqini ləğv et(MenyuItem elementi) ( super.onOptionsItemSelected(element); qaytarın)

Parametr maddə menyu maddəsinə cavabdehdir. Metod vasitəsilə menyu id almalısınız getItemId() və bunun üçün kodu daxil edin. Menyu adətən bir neçə maddədən ibarət olduğundan konstruksiyalardan istifadə etmək rahatdır Əgər və ya keçid. Məlumatı göstərmək üçün mətn etiketindən istifadə edirik. Fəaliyyət ekranına komponent əlavə edin mətn görünüşü. Mövcud olanlardan istifadə edə bilərsiniz mətn görünüşü"Salam Dünya!" etiketli, sadəcə ona şəxsiyyət vəsiqəsi verin.

android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Salam Dünya!"/>

Seçilmiş menyu elementinin kodunu boş yerə əlavə edək:

@İctimai boolean onOptionsItemSelected(MenuItem elementi) ( //seçilmiş menyu elementinin id-sini əldə edin int id = item.getItemId(); TextView infoTextView = (TextView) findViewById(R.id.textView); //Seçilmiş menyu elementi keçidi (id) üçün əməliyyatlar (məlumat:Text1-ə baxın) ( case _Textid. cat!"); true qaytarın; case R.id.action_cat2: infoTextView.set Text("Siz pişik seçmisiniz!"); doğru qaytarın; R.id.action_cat3 halı: infoTextView.setText("Siz pişik balasını seçmisiniz!"); doğru qaytar; default: super.onOptionsItemSelected(item); ) )

Proqramı işə salın, menyunu çağırın və istənilən menyu elementini seçin. Mətn qutusunda bir mesaj görünməlidir.

Mövcuddur alternativ yol Düymə kliklərinin idarə edilməsinə bənzər XML vasitəsilə (Android 3.0-dan bəri). Atribut əlavə edə bilərsiniz android:onclick menyu resurslarında və metod çağırışından istifadə etməyə ehtiyac yoxdur onOptionsItemSelected(). Köməyi ilə android:onclick menyu elementini seçərkən istədiyiniz metodu təyin edə bilərsiniz. Bu atributu elementə əlavə edin Parametrlər

İndi fəaliyyət kodunda aşağıdakıları yazacağıq:

// Parametrlər menyu elementi atributu android olaraq təyin edilib:onClick="onSettingsMenuClick" ictimai etibarsız onSettingsMenuClick(MenuItem element) ( TextView infoTextView = (TextView) findViewById(R.id.textView); infoTextView.setText("Siz bunu seçsəniz, daha yaxşı olardı");

Keçidlər

Menyu elementlərinin görünüşü radio düymələri ilə görünüşə dəyişdirilə bilər. Bunu etmək üçün element əlavə edin qrup atributla android:checkableBehavior="tək":

Mən bu rejimdə çox məna görmürəm. Və biz bunu nəzərə almayacağıq.

Dizayn rejimi

Android Studio 2.2 ekrana yeni komponentlər əlavə etmək üçün alətlər paneli kimi görünən menyular yaratmaq üçün qrafik rejimi əlavə etdi. Menyu çubuğu dörd elementdən ibarətdir: Menyu elementi, Axtarış elementi, Menyu, qrup.

Prinsip eynidir, istədiyiniz elementi seçin və onu ekranın menyu sahəsinə sürükləyin. Əl ilə menyu yaratmağı öyrənmisinizsə, o zaman bu üsul sizə heç bir problem yaratmayacaq. Bununla siz tez bir zamanda menyu strukturunun eskizini çəkə və sonra onu əl ilə düzəldə bilərsiniz.

Oxşar məqalələr