在Xamarin中,不调用OnOptionsItemSelected

时间:2014-04-07 06:26:04

标签: android menu xamarin

我在这里阅读了有关OnOptionsItemSelected未在Android中调用的不同文章,因为我在Xamarin.Android中遇到了同样的问题。
我的主要活动中有一个菜单,但我根本没有使用片段。菜单从XML文件中读取:

        public override bool OnCreateOptionsMenu(IMenu menu)
    {
        MenuInflater.Inflate(Resource.Menu.main, menu);
        return base.OnCreateOptionsMenu(menu);
    }

然后我尝试使用以下代码捕获ItemSelected事件:

        public virtual bool OnOptionsItemSelected (IMenuItem item)
    {
        string test;
        Console.WriteLine ("Test");
        return true;
    }

但它不起作用且事件未被调用。 我尝试过其他事件:

        public virtual bool OnMenuItemSelected (int featureId, IMenuItem item)
    {
        string test;
        Console.WriteLine ("Test");
        return true;
    }

    public void OnGroupItemClick( IMenuItem item) {
        // One of the group items (using the onClick attribute) was clicked
        // The item parameter passed here indicates which item it is
        // All other menu item clicks are handled by onOptionsItemSelected()
        int i = 0;
        string test;
        Console.WriteLine ("Test");

        test = item.MenuInfo.ToString ();

    }

但这些事件都没有被调用过。菜单在那里,但我无法捕捉到ClickedEvents。 我如何捕获ClickedEvents?

2 个答案:

答案 0 :(得分:0)

您的代码似乎在干净的应用程序中工作(刚刚在VS2013上试用过Xamarin.Android Alpha通道,最新版本)。 您可以尝试一些事项:

  • 在Android选项
  • 下的项目属性中禁用快速部署
  • 从项目文件夹中删除bin和obj文件夹

除此之外,您使用的是外部库/组件吗?

答案 1 :(得分:0)

我找到了答案。问题是我使用virtual方法 而不是我必须使用override方法。