Android 为什么ActionBarSherlock菜单不起作用?

Android 为什么ActionBarSherlock菜单不起作用?,android,menu,actionbarsherlock,listener,menuitem,Android,Menu,Actionbarsherlock,Listener,Menuitem,我是android开发的新手,我在让菜单项listener正常工作方面遇到了问题。 当我点击菜单项时,应该会显示一个祝酒词,但什么也没发生。我有正确的导入,并且实现了menuitem侦听器,所以我不明白它为什么不工作。非常感谢您的帮助 //ABS MenuItem import import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener; @Override public boolean onCreateOptionsM

我是android开发的新手,我在让菜单项listener正常工作方面遇到了问题。 当我点击菜单项时,应该会显示一个祝酒词,但什么也没发生。我有正确的导入,并且实现了menuitem侦听器,所以我不明白它为什么不工作。非常感谢您的帮助

//ABS MenuItem import
import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener;

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    menu.add(0,1,0,"Gender").setIcon(R.drawable.female_icon).setOnMenuItemClickListener(this).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    menu.add(0,2,0,"Flip").setIcon(R.drawable.flip_icon).setOnMenuItemClickListener(this).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    menu.add(0,3,0,"Preferences").setIcon(R.drawable.ic_action_example).setOnMenuItemClickListener(RemedyActivity.this).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    menu.add(0,4,0,"Help").setIcon(R.drawable.info).setOnMenuItemClickListener(RemedyActivity.this).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


    //Side Navigation
    getSupportMenuInflater().inflate(R.menu.main_menu, menu);
    if (sideNavigationView.getMode() == Mode.RIGHT) {
        menu.findItem(R.id.mode_right).setChecked(true);
    } else {
        menu.findItem(R.id.mode_left).setChecked(true);
    }
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onMenuItemClick(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId())
    {
        case 1:   
            Toast mToast = Toast.makeText(RemedyActivity.this, "works", Toast.LENGTH_SHORT);
            return true;  

        case 2:   
            Toast mToast2 = Toast.makeText(RemedyActivity.this, "works", Toast.LENGTH_SHORT);
            return true;
    }
    return false;
}
编辑

尝试覆盖

@Override
public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            ...
       }
    }

我没有单击菜单项,而是注意到您在使用侧导航时试图显示祝酒词。过去,我在为这个图书馆干杯时遇到了一些问题。尝试其他方法确定按钮是否实际工作,例如NSLog。

返回super.onCreateOptions菜单(菜单)可能是您的问题。根据“必须返回true才能显示菜单;如果返回false则不会显示。”

如果super.onCreateOptionsMenu始终返回false(很可能返回false),则您的菜单将不会显示


另外,您创建了toast,但没有显示它。您需要显式调用
show()
。当前的eclipse插件应该会就此向您发出警告。

感谢您的响应,但此解决方案也不起作用。您是否设置了
return super.onOptionsItemSelected(item)最后?是的,我做了。这正成为一个令人讨厌的问题。请检查我的编辑。我不明白为什么您的id是
1
2
?如果它来自xml,它是否应该像
R.id.1
?在onCreateOptions菜单中,我将id设置为1,2,等等。我应该仍然可以正常工作?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            ...
       }
    }