- . 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.
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.
Adjunk hozzá még egy elemet a menüben nekik volt a hét.
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.
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