Android menü

beállítások menüt (Beállítások menü)

A menü reagál android.view.Menu osztályban. Minden tevékenység kapcsolódik egyetlen objektum menü. A menü menüpontok (android.view.MenuItem osztály) és almenüt (android.view.SubMenu osztály).

Amikor a menü megnyitásakor először, Android onCreateOptionsMenu () metódust. halad, mint a paraméter menü objektumot. Menü, akkor létrehozhat egy erőforrás az XML-fájl vagy a kiegészítő () metódust.

A standard kivitel, amikor kiválasztják a szokásos sablon már üres a menü egyik pontról a Beállítások és a módszer hívás a menü (már tud róla).

Létrehozása egy menü a források

Tekintsük dolgozik egy menüt a források. erőforrásokat kell tárolni egy XML-fájl létrehozásához használt a menüt. A fájl maga kell, hogy legyen a res / menü / mappa a projekt. A menü a következő elemeket tartalmazza:

Meghatározza a menü, amely menüpontok. elem Meg kell lennie a gyökér elem az XML-fájl szerkezetét, és tartalmazhat egy vagy több elemet és Ez megteremti a menüpontok közvetlenül. Ez az elem lehet egy beágyazott hogy hozzon létre egy almenü Ön is használja a láthatatlan edény elemek kívánt . Ez lehetővé teszi, hogy bizonyos hatások elérése

Tegyük fel, hogy úgy döntött, hogy a menük néhány játékot. Új fájl létrehozása game_menu.xml:

Létrehoztunk egy menü két terméket. Minden elem a következő tulajdonságokkal rendelkezik:

android: id azonosítója menüpont, ahol az alkalmazás képes érzékelni az elosztása a menüpont a felhasználó android: title szöveg jelenik meg a menüben

Vannak más tulajdonságokat az elem. mint például az Android: icon = „@ húzható / home” is megjelenik az ikon a menüpont, és az android: enabled = „false” lehetővé teszi, hogy a menüpont nem érhető el.

Képesség android: titleCondensed alkalmazni abban az esetben, egy közönséges címsor túl széles, és nem „illik” a kiválasztott menüpontot.

Képesség android: orderInCategory határozza meg a sorrendet, amelyben a megjelenített menüpontok menüponttal.

Létrehozásakor a menü, azt hangsúlyozta, hogy a szöveges erőforrások @ string / new_game és @ string / segítséget. Meg kell adnia az új sorok strings.xml file:

Most kell, hogy a változások az osztálytermi tevékenység, amelyben a menü fog megjelenni. A programnak tartalmaznia kell alakítani hoztuk létre a menüt erőforrás a program objektum. Erre a célra egy speciális MenuInflater.inflate () metódust. amely akkor aktiválódik, a különleges visszahívási eljárás onCreateOptionsMenu (). E módszer célja, hogy megjelenítse a menüt a MENU gombot a készüléken:

Miután beillesztette a kódot fejlesztési környezet fogja kérni, hogy importálja a hiányzó névtérben.

onCreateOptionsMenu módszer () metódus elindítja az első megjelenése egy menü a képernyőn, és úgy, mint a paraméter menü oldalak (régebbi eszközök). Ön tudja menteni egy linket a menüben, és fuss, hogy bárhonnan, amíg az eljárás onCreateOptionsMenu () nem lesz megint hívott. Mindig meg kell használni végrehajtása a felvezető a szülő osztály, mert ez automatikusan magában foglalja a kiegészítő rendszer lehetőséget a menüben, ha szükséges. Az új eszköz a módszert nevezik, amikor a tevékenységet. A módszer visszatérési értéke igaz. menü lesz látható a képernyőn.

Fut a program, nyomja meg a MENU gombot az emulátor, hogy a beállítás menüben.

Android menü

getMenuInflater () eljárás visszatér egy példányát az osztálynak MenuInflater. hogy az általunk használt adatokat olvas egy XML menüben.

Mint látható, a menü jelenik meg a képernyő alján. Az eredmények kimutatták, egyidejűleg a képernyőn hat menüpontok. Ha a fenti pontok, akkor megjelenik az öt pont, plusz egy hatodik többet. amely lehetővé teszi, hogy a többi elem. Nézzük és új menüpontok.

Először add hat pontot.

Android menü

Adjunk hozzá még egy elemet a menüben nekik volt a hét.

Android menü

Select menüpontok

Megtanultuk, hogyan kell létrehozni egy menüt. De amíg ez felesleges, mert a menüpontok nem reagálnak a csapok. onOptionsItemSelected () metódus feldolgozására használják azokat a menüpontokat. Az eljárás azonosítja az elemet a felhasználó által kiválasztott keresztül MenuItem. Most már meghatározza a kiválasztott elemet hívja getItemId (). amely visszaadja az azonosító a menüpont. Továbbá át a switch meg kell adnunk a parancsokat:

Indítsa el az alkalmazást, válassza a menüt és válassza az első vagy a második menüpont. A szöveges mezőben, egy üzenet jelenik meg.

Android menü

Ebben a példában getItemId () kér ID a kiválasztott menüpontot, és elkezdi összehasonlítani a kapcsoló kiválasztása nyilatkozat egy azonosítóval, hogy van beállítva az XML-forrásokat. Miután érzékelte a helyes azonosító felvezető végre az adott elem. Ha a program nem talál semmit, akkor az alapértelmezett operátorokat. amely visszaadja a szuper osztály.

Az Android 3.0, akkor adjunk hozzá egy attribútum android: onClick menü forrásait, és akkor nem kell használni onOptionsItemSelected (). Segítségével android: onClick megadhatja a kívánt módszer kiválasztásakor menüpontot.

Software létrehozása menüben

Tekintsük a létrehozása szoftver menü teljes a kép. Mi kell határozni néhány állandói menüpontok:

Az add () metódus négy paraméter:

  • Csoport ID - lehetővé teszi, hogy társítani egy menüpontot egy csoport más elemek a menüben
  • elemazonosítót felvezető menü kiválasztás események
  • az, hogy a tételt a menüben - lehetővé teszi, hogy meghatározza a helyzetét a menü. Default (Menu.NONE vagy 0) elemek ugyanabban a sorrendben, ahogy azt a kódot
  • Title - a szöveg jelenik meg a menüben. Használhatja szöveges erőforrás

A módszer visszaadja a MenuItem objektumot. amelyet fel lehet használni a telepítés a további tulajdonságokat, például beállítani egy ikon, gyorsgombok, stb

Ha azt szeretnénk, hogy hozzon létre egy menü ikonok, használja a módszert setIcon ()

Emlékezzünk ismét, hogy az ikonok csak akkor adjuk a hat menüpontok (vagy öt, ha több, mint hat pont).

onCreateOptionsMenu módszer az úgynevezett rendszer által csak egyszer létrehozásakor menüket. Ha azt szeretnénk, hogy frissítse a menü futási időben, használja a visszahívás módszer onPrepareOptionsMenu ().

Amikor kiválaszt egy menüpont nevű onOptionsItemSelected módszer. amely továbbítja a MenuItem tárgy - egy menüpontot a felhasználó által kiválasztott. Segítségével getItemId módszer kaphat az ID a kiválasztott menüpontot. Azonosítása után a menüpontot, akkor írj kódot kezelni menüpontra események:

parancsikonok

Azt is beállíthatja, gyorsbillentyűk gyors hozzáférést a billentyűzet karakter, többféle módszer alapján:

  • setAlphabeticShortcut (char) - karaktert kölcsönöz
  • setNumericShortcut (int) - egészíti ki számos
  • setShortcut (char, int) - egészíti kombinációja betűk és számok

Például, ha beállítja a gyorsgomb setAlphabeticShortcut (q ');. amikor megnyitja a menüt (vagy tartsa lenyomva a MENU gombot) megnyomása Q gomb segítségével a menüből. Ez gyorsgomb (vagy billentyűkombináció) jelenik meg, mint egy tooltip, amely megjeleníti a nevét a menüpont az alábbiakban. Az új billentyűs külön Ctrl billentyűt. amely ugyanúgy működik, mint egy hagyományos billentyűzeten.

Parancsikonok hozhatók létre az XML: android: alphabeticShortcut = "c".

Feldolgozás nyomható keresztül onKeyShortcut () Activity Módszer:

Létrehozása almenü

Almenük adhatunk semmilyen menü, kivéve egy almenü. Almenü jön létre a visszahívási módszer onCreateOptionsMenu () keresztül addSubMenu () módszer. amely visszaadja almenü objektumot. Almenüben tárgy, akkor további adatokat ehhez menüt az add () metódus. Például:

Most egy másik ablakban egy almenü jelenik meg, ha a menüpont kiválasztásához. Próbáld ki magad.

Hozzáadása zászlók és kapcsolók

A menüpontok adhat négyzeteket vagy rádió gombok. Ahhoz, hogy hozzá egy négyzetet vagy rádiógomb egyedi menüpont setCheckable () metódust kell használni:

Ha kell hozzá több menüpontok zászlókkal vagy kapcsolók, lehetséges, hogy összekapcsolják őket a menüben csoport, ami egy külön identitás. A menüpont hozzáadjuk a csoportot, az eljárás révén add (). halad, mint az első paraméter menü csoport azonosítót. Tegyük fel, hogy állapítsa meg az azonosítók egy csoportja a Color menü, valamint az elemek a szín:

Most, hogy hozzon létre egy menü zászlókkal csoport hozzárendelése egy csoport azonosítót minden menüpontot és nyissa setGroupCheckable () metódus az egész csoport (nincs szükség okoz setCheckable () metódus minden menüpont):

A módszer setGroupCheckable () a három lehetőség közül:

  • első paraméter - az azonosító a menü-csoport;
  • A második paraméter - igaz, ha a csoporton belül kapcsolók vagy zászló;
  • A harmadik lehetőség - állítja az egyetlen (igaz) vagy több (hamis) választása menüpontok. Ez a paraméter határozza meg a ténylegesen a menü megjelenését - ez lesz a menü gombok vagy dobozt.

Hogy ellenőrizzék az állam a zászlók és kapcsolók a kimeneti menüből válassza az esetben meg kell írni a következőket:

A projekt futtatásához hívja fel a menüt, és válassza a Color. Lesz egy főmenüben három (vörös, zöld, kék) formájában zászlók. Állami zászlók és kapcsolók feldolgozásakor a programkód és tárolni ismételt menüben.

Tudod csak rendelni a szándék a kiválasztott menüpont segítségével setIntent () metódus, hogy induljon el, amikor megnyomja a ponton, ha az esemény nem került elfogott rakodók onMenuItemClickListener (elavult.) Or onOptionsItemSelected. Amikor aktiválódik, a szándék továbbítjuk startActivity módszer.

Soft nyitási és zárási menü

Ha valamilyen okból meg kell programozottan megnyithatja a menüt (pl demonstrációs célokra) használja openOptionsMenu () metódus:

A menük használja a záró closeOptionsMenu () metódust. bár emlékszem openOptionsMenu () metódus is bezárja a menüt.

Szoftver eltávolítása menüpontot

Tegyük fel, hogy határozza meg a menüpont egy xml-file:

Ahhoz, hogy távolítsa el a felesleges menüpont egyértelműen a programból a macskákról, meg kell nyitnia a tétel révén findItem () metódus a menüt, és hogy láthatatlan. Menü hivatkozás a kívánt objektumot átvinni onCreateOptionsMenu módszer. program felismeri a változást a menürendszerben.

De ez a megoldás azzal a hátránnyal, ha forgatni a képernyőt, az Activity peresozdatsya és távoli menü jelenik meg ismét. Hogyan lehet megszabadulni a kibaszott kutyus?

Meg kell emlékezni az állam a menüpont, és tárolja egy objektum típusú Bundle az eljárás onSaveInstanceState. és vonjuk ki a mentett állapotát, és adja át onPrepareOptionsMenu módszer a onCreate () módszer. amely az úgynevezett előtt megjelenik a képernyőn:

Határozzuk meg a jelenléte a Menü gombot,

A jelölés a menü

A modern készülékek, a menü része a ActionBar. És szabhatja elrendezést XML menüben.

Tegyük fel, hogy ezt a lehetőséget választja:

A showAsAction attribútumot nem használja soha értéket. egyébként az elrendezés nem fogja látni. A nagyon elrendezés beállítható actionLayout attribútumot. A jelölés:

Menü töredékek

A menü lehet nem csak egy része a tevékenység, hanem egy része a töredék. A működési elve gyakorlatilag azonos. A fragmens a megfelelő módszert.

FragmentManager felelős hívó onCreateOptionsMenu (), amikor megkapta a visszahívási tevékenység onCreateOptionsMenu () a rendszerből. Kifejezetten közölnie kell FragmentManager vezetője. a fragmentum, hogy a hívás onCreateOptionsMenu (). Ehhez hívja setHasOptionsMenu () metódus:

Kapcsolódó cikkek