Переопределить onOptionsItemSelected(MenuItem item)
.Так что это будет похоже на
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
РЕДАКТИРОВАТЬ:
Так как это набрало так много очков, я должен отметить, что это очень хорошо, чтобы добавить идентификаторы в менюопции.Хороший способ убедиться, что они всегда уникальны, - определить их в ресурсе ids.xml
, который помещается в папку res/values
.
ids.xml
<resources>
<item name="menu_action1" type="id"/>
<item name="menu_action2" type="id"/>
<item name="menu_action3" type="id"/>
</resources>
Тогда, когда выПереопределив метод onCreateOptionsMenu(Menu menu)
, вы можете использовать идентификаторы следующим образом:
@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;
}
Переопределить 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);
}
}
Причина, по которой вы это делаете, заключается в том, что Activity
переопределяет это с помощью пунктов меню, но Fragments
также может добавлять свои собственные пункты меню.Использование ids.xml
обеспечивает уникальность идентификаторов независимо от того, в каком порядке они размещены.