Prima di tutto si deve segnalare che non esiste un sistema unico per aprire un Option Menu. Sull'emulatore si deve premere il tasto Menu
Cerchiato in rosso il tasto di Option Menu |
Sui cellulari l'icona e la posizione del tasto di Option Menu puo' variare. Per esempio sull'Ideos
Cerchiato in rosso il tasto Option Menu su Ideos |
//gestione della creazione ed interazione con l'option menu
La prima via e' quella totalmente via codice. Nella prima funzione si crea il menu, nella seconda vengono gestiti gli eventi legati al menu
-----------------------------------------------------------------------------------------------------------------
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(1,1,0,R.string.cancella).setIcon(R.drawable.delete_item);
menu.add(1,2,1,R.string.calibra).setIcon(R.drawable.tool);
menu.add(1,3,2,R.string.help).setIcon(R.drawable.help);
return true;
}
// gestione degli eventi dell'option menu
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case 1:
return true;
case 2:
return true;
case 3:
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle(R.string.help_title);
dialog.setMessage(R.string.help_text);
dialog.show();
return true;
}
return false;
}
-----------------------------------------------------------------------------------------------------------------
nel secondo caso invece ci si avvale di un file xml esterno denominato option_menu.xml che risiede in /res/menu
-----------------------------------------------------------------------------------------------------------------
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/delete_item" android:icon="@drawable/delete_item" android:title="@string/delete_item" />
</menu>
-----------------------------------------------------------------------------------------------------------------
il codice crea un Inflater e lo collega a R.menu.option_menu. La gestione degli eventi risulta simile al caso precedente
-----------------------------------------------------------------------------------------------------------------
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete_item:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
-----------------------------------------------------------------------------------------------------------------
Nessun commento:
Posta un commento