Anular onOptionsItemSelected(MenuItem item)
. Por lo que sería como
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
EDIT:
Dado que esto ha conseguido tantos puntos, debo señalar que es muy bueno para agregar identificaciones a las opciones del menú. Una buena forma de asegurarse de que siempre sean únicos es definirlos en un recurso ids.xml
que se coloca en la carpeta res/values
.
ids.xml
<resources>
<item name="menu_action1" type="id"/>
<item name="menu_action2" type="id"/>
<item name="menu_action3" type="id"/>
</resources>
Luego, cuando se reemplaza el método onCreateOptionsMenu(Menu menu)
, puede utilizar los identificadores de este modo:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, R.id.menu_action1, Menu.NONE, R.string.menu_action1);
menu.add(Menu.NONE, R.id.menu_action2, Menu.NONE, R.string.menu_action1);
return true;
}
Anulación onOptionsItemSelected(MenuItem item)
.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_action1:
// do whatever
return true;
case R.id.menu_action2:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
La razón de hacer esto es la Activity
anularía esto con las opciones de menú, pero Fragments
también pueden añadir sus propios elementos de menú. El uso del ids.xml
garantiza que los ID sean únicos, independientemente del orden en que se coloquen.
Como una buena práctica de programación, usaría identificadores en lugar de codificar los números en el estuche. –