redev

technical miscellaneous memorandum

ActionItemのイベント

ActionBarとインタラクション制御 - mixi-inc/AndroidTraining
のActionBar課題5

2つのActionItemをActionBarに表示させ、片方は新しいActivityを起動、もう一方はMainActivityを終了させる。

public class MainActivity extends Activity implements ActionBar.TabListener {

    //MenuItem識別用ID
    private static final int MENU_NEW_ACTIVITY = 0;
    private static final int MENU_CLOSE = 1;

        :

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //メニューの要素を追加
        //add(int groupId, int itemId, int order, int titleRes)
        MenuItem actionItem1 = menu.add(Menu.NONE, MENU_NEW_ACTIVITY, Menu.NONE, "NewActivity");
        MenuItem actionItem2 = menu.add(Menu.NONE, MENU_CLOSE, Menu.NONE, "Close");
        actionItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        actionItem2.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case MENU_NEW_ACTIVITY:
                Intent intent = new Intent(this, NewActivity.class);
                startActivity(intent);
                break;
            case MENU_CLOSE:
                finish();
                break;
            default:
                break;
        }
        return true;
    }

}