1

SherlockFragmentActivity 中的 onOptionsItemSelected() 有问题。调用了 onCreateOptionsMenu() 并且完美地构建了选项菜单,但是当我单击选项项目时,不会调用 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;

有谁知道帮助?谢谢!

4

2 回答 2

1

我认为这是因为您没有设置MenuItemClickListener(您在代码中创建项目)。但是,如果您从 xml 定义菜单, Android 将设置侦听器并在单击时触发 onOptionsItemSelected。

于 2013-04-18T16:42:23.120 回答
1

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

于 2013-04-19T18:23:21.383 回答