Ответ 1
Заменить onOptionsItemSelected(MenuItem item)
. Так что это было бы как
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
EDIT:
Так как это получило так много очков, я должен отметить, что очень хорошо добавить ID в параметры меню. Хорошим способом гарантировать, что они всегда уникальны, - определить их в ресурсе 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
гарантирует уникальность идентификаторов независимо от того, в каком порядке они размещаются.