Android选项菜单,在运行时添加项目

Android选项菜单,在运行时添加项目,android,xamarin.android,layout-inflater,android-optionsmenu,Android,Xamarin.android,Layout Inflater,Android Optionsmenu,我现在有一个选项菜单,看起来像这样: 假设如果我单击项目1,我希望在菜单中添加两个新项目,如下所示: 我在运行时(打开时)执行此操作时遇到问题,因为OnCreateOptions菜单只调用一次,而OnPrepareOptions菜单似乎只在单击手机的菜单按钮时调用。我只是想让它刷新这些新的项目添加 谢谢你的帮助 当您选择一个选项项时,系统将关闭选项菜单。这发生在OnOptions ItemSelected()运行之后。我猜您需要完成的是完成整个过程,然后以编程方式再次打开选项菜单,以便调用P

我现在有一个选项菜单,看起来像这样:

假设如果我单击项目1,我希望在菜单中添加两个新项目,如下所示:

我在运行时(打开时)执行此操作时遇到问题,因为OnCreateOptions菜单只调用一次,而OnPrepareOptions菜单似乎只在单击手机的菜单按钮时调用。我只是想让它刷新这些新的项目添加


谢谢你的帮助

当您选择一个选项项时,系统将关闭选项菜单。这发生在OnOptions ItemSelected()运行之后。我猜您需要完成的是完成整个过程,然后以编程方式再次打开选项菜单,以便调用PrepareOptions菜单()

试试这个:

  • 在OnOptions ItemSelected()中,当用户选择“添加两个以上选项”选项时,在活动中设置一个标志,但不执行任何其他操作

  • 重写onOptionsMenuClosed()。检查是否设置了该标志。如果是,则在下一次传递时,将由UI线程执行post。它只能再次打开选项菜单,例如

    runOnUiThread(新的Runnable(){ @凌驾 公开募捐{ 打开选项菜单(); } });

  • 重写OnPrepareOptions菜单()。检查是否设置了该标志。如果是,则添加两个附加菜单项并取消设置标志。您需要做一些额外的工作,以防止“添加更多项目”菜单项在每次按下时继续添加新项目,除非这是您正在寻找的行为


  • 您想在菜单打开时更新它吗?您是否尝试过以编程方式隐藏和显示它(不按菜单按钮),以便调用OnPrepareOptions菜单?是的,我尝试过使用CloseOptions菜单()和OpenOptions菜单()之后的方法。这会关闭菜单,调用prepare,但不会再次打开。您是否考虑过使用子菜单?(我知道它不会像你所希望的那样添加到菜单中,但它的功能与你似乎在寻找的内容有关)。是的,我最终使用了子菜单。但如果按我的方式来做,会更整洁,即使子菜单提供了相同的功能:)因为还没有答案,所以可能没有简单的解决方案。