【发布时间】:2013-11-25 05:53:47
【问题描述】:
我的活动中有以下代码:
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;
}
但是,无论我点击save search 还是refresh 我在屏幕上看到的都是:Got click 0
我希望每个点击的项目都有不同的id。
我是不是做错了什么?
【问题讨论】:
-
你在使用 ActionBarSherlock 吗?
-
是的,我是。行为是否不同?
-
我以前遇到过这个问题。检查:stackoverflow.com/a/10910315/362298
-
hmm 我的导入匹配 actionbarsherlock。所以这不是问题
-
嗯,另一个想法:既然您是以编程方式创建项目,也许您需要自己定义 ID?尝试在
onCreateOptionsMenu中的每个项目上调用setId()
标签: java android android-layout