Skip to content Skip to sidebar Skip to footer

Onmenuitemclick Doesn't Get Called

I am using NavigationDrawer with ActionBarSherlock. When I click on menu items onMenuItemClick() methods don't get called. The code: @Override public boolean onOptionsItemSelected(

Solution 1:

Since you are already using onOptionsItemSelected, have you considered processing all of your menu items in there instead? Like this:

@OverridepublicbooleanonCreateOptionsMenu(Menu menu) {
    setTitle(AndroidUtils.getTitle());

    SubMenusubMenu1= menu.addSubMenu(null);

    subMenu1.add(0, R.id.menu_save_loc, 0, R.string.save_loc)
        .setIcon(android.R.drawable.ic_menu_save);
    subMenu1.add(0, R.id.menu_save_em, 0, R.string.save_em)
        .setIcon(android.R.drawable.ic_dialog_email);

    MenuItemsubMenu1Item= subMenu1.getItem();
    subMenu1Item.setIcon(android.R.drawable.ic_menu_share);
    subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS
            | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    returnsuper.onCreateOptionsMenu(menu);
}

@OverridepublicbooleanonOptionsItemSelected(MenuItem item) {
    intitemId= item.getItemId();
    if (itemId == android.R.id.home) {
        if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
            mDrawerLayout.closeDrawer(mDrawerList);
        } else {
            mDrawerLayout.openDrawer(mDrawerList);
        }
    }
    elseif (itemId == R.id.menu_save_loc) {
        ...
    }
    elseif (itemId == R.id.menu_save_em) {
        ...
    }
    else {
        returnsuper.onOptionsItemSelected(item);
    }

    returntrue;
}

Solution 2:

For some strange reasons, I was not able to handle menu item clicks, but setting the setOnClickListener for each menu view helped.

@OverridepublicbooleanonCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.media_process_menu, menu);
    for (int i = 0; i < menu.size(); i++) {
        menu.getItem(i).getActionView().setOnClickListener(newView.OnClickListener() {
            @OverridepublicvoidonClick(View v) {
                if (v.getId() == R.id.save) {
                    //Your actionhandleSaveAction();
                }
            }
        });
    }

    returnsuper.onCreateOptionsMenu(menu);
}

Post a Comment for "Onmenuitemclick Doesn't Get Called"