オーバーライド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を追加する非常に良好であることに注意してください。それらが常に一意であることを確認する良い方法は、res/values
フォルダに置かれたids.xml
リソースでそれらを定義することです。
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)
メソッドをオーバーライドするときに、あなたはそうのようなIDを使用することができます。
@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
を使用すると、どの順序で配置されていてもIDが一意であることが保証されます。 Android developer guide動作しません
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
良いプログラミング方法として、私は大文字小文字の数字をハードコードするのではなく、IDを使用します。 –