+ All Categories
Home > Documents > Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ......

Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ......

Date post: 19-Feb-2019
Category:
Upload: truongthu
View: 220 times
Download: 1 times
Share this document with a friend
21
Corso Base Maurizio Cozzetto, Francesco Sarasini Lezione 3
Transcript
Page 1: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Corso Base

Maurizio Cozzetto, Francesco Sarasini

Lezione 3

Page 2: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Menu“Menus are an important part of an application that provide a familiarfamiliar interfaceinterface for the user to access application functions and settings.”

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 3: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Tipi di Menu

● Options Menu

● Icon Menu

● Expanded Menu

● Context Menu

● Submenu

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 4: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Icon Menu (1/2)“The menu items visible at the bottom of the screen at the press of the MENUMENU key.”

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 5: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Icon Menu (2/2)

● Un solo Icon Menu per ogni attività● Non può contenere elementi avanzati come le caselle di spunta e i bottoni radio● Può contenere al massimo 6 elementi

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 6: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Expanded Menu“The vertical list of menu items exposed by the 'MoreMore' menu item in the Icon Menu.”

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 7: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Icon Menu (1/4)

● Si crea un file xml all'interno della directory res/menu

● Si crea il menu con gli elementi <menu>, <item> e <group>

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 8: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Icon Menu (2/4)

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="..."> <item android:id="@+id/new_game" android:icon="@drawable/ic_new_game" android:title="@string/new_game" /> <item android:id="@+id/quit" android:icon="@drawable/ic_quit" android:title="@string/quit" /></menu>

game_menu.xml

Page 9: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Icon Menu (3/4)

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

// otteniamo un “MenuInflater” dal contesto MenuInflater inflater = getMenuInflater();

// carichiamo game_menu.xml nell'oggetto menuinflater.inflate(R.menu.game_menu, menu);

return true;}

Metodo dell'Activity richiamato quando l'utentepreme il tasto MENU

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 10: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Icon Menu (4/4)

@Overridepublic boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.new_game: //...

break; case R.id.quit: // ... break; } return true;}

Metodo richiamato quando l'utente sceglieuna voce del menu

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 11: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Context Menu“A floating list of menu items that appears when the user performs a long-presslong-press on a View. ”

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 12: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Context Menu via XML (1/4)@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.main);

ImageView image = (ImageView)findViewById(R.id.gingerdroid);

registerForContextMenu(image); } // fine metodo

Registrazionedella View

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 13: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Context Menu via XML (2/4)@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

// uso un oggetto Inflater MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.mio_menu, menu); } // fine metodo

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Metodo dell'Activity di creazione del menucontestuale

Page 14: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Context Menu via XML (3/4)<menu ...> <item android:id="@+id/save" ... /><item android:id="@+id/view" ... />

<item android:id="@+id/sottomenu"><menu> <item android:id="@+id/paperino" /> <item android:id="@+id/topolino" /></menu>

</item>

</menu>

File mio_menu.xml

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 15: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Context Menu via XML (4/4)@Overridepublic boolean onContextItemSelected(MenuItem item) {

int id = item.getItemId();switch (id) {case R.id.save:

// ...break;

// caso view ...case R.id.paperino:

// ...break;

...}return true;

}} // fine metodo

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Metodo richiamato quando è selezionatauna voce del menu

Page 16: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Sub Menu“A floating listfloating list of menu items that the user opens by pressing a menu item in the Options MenuOptions Menu or a Context menu.”

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Page 17: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Sub Menu via XML (1/3)// Inflate di un Icon Menu@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = new MenuInflater(this);inflater.inflate(R.menu.mio_menu, menu);return true;

}

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {

if (item.isCheckable()) {item.setChecked(!item.isChecked());

}return true;

} // fine metodo

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

Gestione checkbox e option button

Page 18: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Sub Menu via XML (2/3)<menu>

<item ... android:id="@+id/menu1"><menu>

<group android:id="@+id/group1" ...><item android:id="@+id/item11" ... /><item android:id="@+id/item12" ... /><item android:id="@+id/item13" ... />

</group></menu>

</item>

// continua...

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

File mio_menu.xmlSottomenu1

Page 19: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Programmare un Sub Menu via XML (3/3)

<item android:title="..." android:id="@+id/menu2"><menu>

<group android:id="@+id/group2" ...><item android:id="@+id/item21" ... /><item android:id="@+id/item22" ... /><item android:id="@+id/item23" ... />

</group></menu>

</item></menu>

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

File mio_menu.xmlSottomenu2

Page 20: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Icone menu standard (alcune)

Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.

ic_menu_add

ic_menu_delete

ic_menu_edit

ic_menu_cancel

ic_menu_search

ic_menu_info_details

ic_menu_refresh

ic_menu_manage

ic_menu_sort_by_size

ic_menu_help

android:icon="@android:drawable/ic_menu_add"

Page 21: Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ... Programmare un Icon Menu ...

Corso Base

Maurizio Cozzetto, Francesco Sarasini

5 minuti di pausa


Recommended