Java onOptionsItemSelected isn';t选择右键单击的菜单项

Java onOptionsItemSelected isn';t选择右键单击的菜单项,java,android,android-layout,Java,Android,Android Layout,我的活动中包含以下代码: import com.actionbarsherlock.app.SherlockListActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; .... public boolean onCreateOptionsMenu(Menu menu) { menu.add("Save") .setIcon(R.d

我的活动中包含以下代码:

import com.actionbarsherlock.app.SherlockListActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
....
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add("Save")
            .setIcon(R.drawable.action_create).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    menu.add("Search")
            .setIcon(R.drawable.action_search)
            .setActionView(R.layout.collapsible_edittext)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

    menu.add("Refresh")
            .setIcon(R.drawable.ic_refresh)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Toast.makeText(this, "Got click: " + item.getItemId(), Toast.LENGTH_SHORT).show();
    return true;
}
但是,无论我是单击
保存
搜索
还是
刷新
我在屏幕上看到的都是:
Got单击0

我希望每个点击的项目都有不同的
id


我做错什么了吗?

请按照所选OnOptions项中的说明进行操作

        case R.id.your_case_name
        //What you want it to do such as a toast
        return true; 

通常要做的事情是将
菜单及其xml项定义为资源,然后您可以为这些项定义自己的id


另一个快速修复方法是不使用选项ItemSelected()中的id,而是使用您定义的id(即“保存”、“搜索”、“刷新”)

你在用ActionBarSherlock吗?是的,我在用。行为不同吗?我以前有过这个问题。检查:嗯,我的导入匹配actionbarsherlock。这不是问题,嗯,另一个想法是:既然您是通过编程方式创建项目,那么您可能需要自己定义ID?尝试对您的
onCreateOptions菜单中的每个项目调用
setId()
。这个头衔对我有用。我遵循这个样本: