我在SherlockFragmentActivity中遇到onOptionsItemSelected()问题。 调用onCreateOptionsMenu()并完美地构建选项菜单,但是当我单击Options项时,不会调用onOptionsItemSelected()。
我在使用SherlockActivity的测试项目中尝试了相同的以下代码,并在那里工作:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 0, "hi").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
menu.add(0, 1, 0, "ha").setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_NEVER);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == 1) {
// Do someting!
}
return true;
}
在这两种情况下,都会执行以下导入:
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
有人知道帮助吗?谢谢!
答案 0 :(得分:1)
我认为这是因为您没有设置MenuItemClickListener(您在代码中创建项目)。 但是如果你define menu from xml Android将设置监听器并点击onOptionsItemSelected。
答案 1 :(得分:1)
谢谢!现在我复制了Project并重建了我的SherlockFragmentActivity并发现了问题。我的类已经包含公共布尔值onMenuItemSelected(int featureId,MenuItem item),并且将调用它而不是onOptionsItemSelected。我需要这个,因为操作栏左上角的后退按钮。