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()
。这个头衔对我有用。我遵循这个样本: