Android:在SherlockActivity中调用onOptionsItemSelected(),但在SherlockFragmentActivity中没有

时间:2013-04-18 16:25:24

标签: java android

我在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;

有人知道帮助吗?谢谢!

2 个答案:

答案 0 :(得分:1)

我认为这是因为您没有设置MenuItemClickListener(您在代码中创建项目)。 但是如果你define menu from xml Android将设置监听器并点击onOptionsItemSelected。

答案 1 :(得分:1)

谢谢!现在我复制了Project并重建了我的SherlockFragmentActivity并发现了问题。我的类已经包含公共布尔值onMenuItemSelected(int featureId,MenuItem item),并且将调用它而不是onOptionsItemSelected。我需要这个,因为操作栏左上角的后退按钮。