Crearea de meniuri pentru copii

Meniurile copil sunt afișate sub formă de meniuri obișnuite, când selectați elemente noi. În sistemele tradiționale, submeniurile sunt afișate ca o ierarhie a copacilor. Dar Android folosește o abordare diferită, simplificând procesul de navigare prin meniuri pe dispozitive cu ecrane mici. În locul unei structuri copac, când selectați un meniu copil, apare o singură fereastră pop-up care afișează toate elementele.

Puteți adăuga un submeniu folosind metoda addSubMenu. Acesta acceptă același set de parametri ca metoda de adăugare, folosită la adăugarea elementelor obișnuite, vă permite să specificați un grup, un identificator unic și un șir de text pentru fiecare submeniu. De asemenea, puteți utiliza metodele setHeaderIcon și setIcon pentru a seta imaginile care vor fi afișate în antetul ferestrei pop-up și în meniul cu pictograme, respectiv.

Elementele MenuItem în acest caz suportă aceiași parametri ca și elementele pentru alte tipuri de meniuri (extinse și cu pictograme). Cu toate acestea, spre deosebire de sistemele tradiționale, meniurile imbricate din Android nu sunt acceptate.

Următorul fragment de cod prezintă un fragment din implementarea handlerului onCreateMenuOptions - adăugând un meniu copil în meniul principal. Un element nou este creat pentru meniul copil și este setat un antet.

SubMenu sub = meniu.addSubMenu (0, 0, Menu.NONE, "Submeniu"); sub.setHeaderIcon (R.drawable.icon); sub.setIcon (R.drawable.icon);

MenuItem submeniuItem = sub.add (0, 0, Menu.NONE, "Submeniu Item");

Utilizarea meniului contextual

Meniurile contextuale se leagă de un izolat și reprezentare concluzii ditsya pe ecran prin apăsarea trackball manipulatorului medie D-pad sau butoanele de pe elementul de interfață (acesta din urmă trebuie să aibă loc timp de aproximativ trei secunde).

Completarea meniurilor contextuale și principale este similară în multe privințe. Există două moduri de a crea un meniu contextual pentru o anumită vizualizare.

Creați un meniu contextual. Prima abordare este crearea unui obiect generic ContextMenu pentru clasa View, în care manerul onCreateContextMenu este redefinit, după cum se arată mai jos:

public void onCreateContextMenu (meniul ContextMenu)

Meniul de context va fi disponibil în cadrul activității care conține această clasă de vizualizare.

Utilizate pe scară largă a crea un meniu contextual pentru un anumit activ prin suprascrierea handler onCreateContextMenu și înregistrarea folosind reprezentarea registerForContextMenu metoda care acest meniu poate fi utilizat. Acest proces este prezentat în Lista 4.29.

Listing 4.29. Atribuiți un meniu contextual pentru Vizualizare

public void onCreate (Bundle savedInstanceState)

EditText view = new EditText (aceasta);

După înregistrarea Vizualizării, handlerul onCreateContextMenu se va declanșa când meniul contextual al obiectului Vizualizare va fi afișat pentru prima dată.

Override metoda onCreateContextMenu si verifica ce fel de reprezentare a determinat-o să fie în măsură să completeze meniul din punctele corespunzătoare, așa cum se arată în anexa la Listing 4.29:

public void onCreateContextMenu (meniul ContextMenu, Vizualizare v, ContextMenu.ContextMenuInfo menuInfo)

super.onCreateContextMenu (meniu, v, meniuInfo);

meniu.add (0, meniu.FIRST, Meniu.NONE,

meniu.add (0, meniu.FIRST + 1, Meniu.NONE, "Poz. 2") setCheckable (true); meniu.add (0, meniu.FIRST + 2, Meniu.NONE, "Poz. 3") setShortcut ('3', '3'); SubMenu sub = meniu.addSubMenu ("Submeniu");

După cum arată exemplul, clasele ContextMenu și Meniu suportă aceeași metodă de adăugare, astfel încât modul de umplere a acestor tipuri de meniuri nu este diferit. Rețineți că pictogramele nu vor fi afișate. Cu toate acestea, puteți specifica numele și pictograma care vor fi afișate în bara de titlu a meniului contextual.

Android acceptă, de asemenea, pop-up-ul dinamic al meniurilor contextuale utilizând Filtre de intenție. Acest mecanism permite completarea meniurilor contextuale, indicând ce tip de date reprezintă obiectul curent de vizualizare și interogând alte aplicații pentru orice acțiuni pentru acesta.

Cel mai viu exemplu al acestui mecanism sunt elementele de meniu. /? -. /. disponibilă în elementele EditText. Folosirea filtrelor intenționate pentru a popula meniurile context este discutată în detaliu în capitolul următor.

Selectarea elementelor din meniul contextual este tratată în același mod ca și în meniul Activități. Aveți posibilitatea să atașați în mod intenționat sau o interfață OnMenuItemClickListener direct la fiecare obiect MenuItem, și așa își alinieze mai preferată - Override onContextItemSelected, aparținând activă.

Acest handler de evenimente este declanșat de fiecare dată când un element este selectat în meniul contextual.

public boolean onContextItemSelected (elementul MenuItem)

[... Prelucrarea selecției unui element din meniu ...]

Articole similare