Zastąpienie onOptionsItemSelected(MenuItem item)
. Więc to będzie jak
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
EDIT:
Od tego ma zdobyć tak wiele punktów, powinien pamiętać, że jest bardzo dobry, aby dodać identyfikatory do opcji menu. Dobrym sposobem zapewnienia, że są one zawsze unikatowe, jest zdefiniowanie ich w zasobach ids.xml
umieszczonych w folderze res/values
.
ids.xml
<resources>
<item name="menu_action1" type="id"/>
<item name="menu_action2" type="id"/>
<item name="menu_action3" type="id"/>
</resources>
Wtedy, kiedy zastąpić metodę onCreateOptionsMenu(Menu menu)
, można użyć identyfikatory tak:
@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;
}
Zastąp 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);
}
}
Powodem zrobić to Activity
by zastąpić ten z opcji menu, ale Fragments
mogą również dodawać własne elementy menu. Korzystanie z ids.xml
zapewnia, że identyfikatory są niepowtarzalne, bez względu na to, w jakiej kolejności się znajdują.
Jako dobrą praktykę programistyczną użyłbym identyfikatorów zamiast numerowania na sztywno liczb w tej sprawie. –