PERSON MENU VEHICLE MENU DRIVER MENU ACCIDENT MENU US Department Of
Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ......
Transcript of Lezione 3 · Android Corso Base. Maurizio Cozzetto, Francesco Sarasini. Tipi di Menu ......
Corso Base
Maurizio Cozzetto, Francesco Sarasini
Lezione 3
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.
Tipi di Menu
● Options Menu
● Icon Menu
● Expanded Menu
● Context Menu
● Submenu
Android Corso Base. Maurizio Cozzetto, Francesco Sarasini.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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
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.
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
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
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
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"
Corso Base
Maurizio Cozzetto, Francesco Sarasini
5 minuti di pausa