Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:OnOptions ItemSelected()在SherlockActivity中调用,但在SherlockFragmentActivity中未调用_Java_Android - Fatal编程技术网

Java Android:OnOptions ItemSelected()在SherlockActivity中调用,但在SherlockFragmentActivity中未调用

Java Android:OnOptions ItemSelected()在SherlockActivity中调用,但在SherlockFragmentActivity中未调用,java,android,Java,Android,我对SherlockFragmentActivity中的OnOptions ItemSelected()有问题。 调用了onCreateOptions菜单(),并且完美地构建了选项菜单,但是当我单击选项项时,不会调用onOptions项Selected() 我在一个测试项目中使用SherlockActivity尝试了以下相同的代码,结果它成功了: @Override public boolean onCreateOptionsMenu(Menu menu) { menu

我对SherlockFragmentActivity中的OnOptions ItemSelected()有问题。 调用了onCreateOptions菜单(),并且完美地构建了选项菜单,但是当我单击选项项时,不会调用onOptions项Selected()

我在一个测试项目中使用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;

有人知道帮助吗?谢谢大家!

我认为这是因为您没有设置(您在代码中创建项)。
但是,如果您的Android将设置listener并在单击时启动选项ItemSelected。

谢谢!现在我复制了这个项目,重建了我的SherlockFragmentActivity,并发现了问题。我的类已经包含公共布尔onMenuItemSelected(int featureId,MenuItem item),将调用它而不是onOptions ItemSelected。我之所以需要它,是因为actionbar左上角的“后退”按钮。

您是否尝试过在最小测试项目中使用
SherlockFragmentActivity
?我曾多次在继承自SherlockFragmentActivity的活动中使用过
OnOptions ItemSelected()
,从未遇到过问题。感谢您的帮助,我现在尝试过,它可以与SherlockFragmentActivity一起使用,但仍然只在最小测试项目中使用。你知道在我的大项目中什么会影响它吗?碎片是否起作用(它们没有任何选项菜单)?对不起,不知道。如果我在解决这个问题,我会慢慢地拆除我的断裂活动,或者慢慢地积累我的工作活动,直到我找到断裂点。然后你就可以找到解决方法了。谢谢!现在我复制了这个项目,重建了我的SherlockFragmentActivity,并发现了问题。我的类已经包含公共布尔onMenuItemSelected(int featureId,MenuItem item),将调用它而不是onOptions ItemSelected。我之所以需要这个,是因为操作栏左上角的后退按钮。太棒了!你应该把这作为一个答案,并接受它的情况下,其他人有这个问题,他们可以很容易地找到它。谢谢你的答案!我现在尝试从XML定义它,但仍然不起作用。