メニューからいくつかのアクティビティを起動するサンプルのAndroidアクティビティを拡張しているうちに、onOptionsItemSelected
内で処理されるメニュー項目がいくつかあります。 setIntent
をonCreateOptionsMenu
の範囲内で呼び出してください。menuItem.setIntentとonOptionsItemSelectedを組み合わせても動作しません
基本的には何か:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
menu.add(0, MENU_ID_1, Menu.NONE, R.string.menu_text_1);
menu.add(0, MENU_ID_2, Menu.NONE, R.string.menu_text_2);
menu.add(0, MENU_ID_3, Menu.NONE, R.string.menu_text_3).
setIntent(new Intent(this, MyActivity_3.class));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch (item.getItemId())
{
case (MENU_ID_1):
// Process menu command 1 ...
return true;
case (MENU_ID_2):
// Process menu command 2 ...
// E.g. also fire Intent for MyActivity_2
return true;
default:
return false;
}
}
どうやら、このような状況でMENU_ID_3上の意思セットが発射されることはありませんか、とにかく関連の活動が開始されることはありません。
ある時点でのAndroid javadocが< <ようになり、[メニュー項目の上に意図を設定している場合] 何もないが、アイテムを処理し、その後、デフォルトの動作は、になります[意図して活動を開始] >> 。
「実際には何も処理しない」とはどういう意味ですか? onOptionsItemSelected
からfalseを返すだけで十分ですか? また、最初にsuper.onOptionsItemSelected(item)
に電話をかけずに、デフォルトのスイッチの場合にのみ呼び出すようにしましたが、同じ結果が出ました。
誰にも提案はありますか? Androidは2種類の処理を混在させることはできますか?
あなたのお時間をありがとうございます。