我现在有一个看起来像这样的选项:
让我们说如果我点击第1项,我想在菜单中添加两个新项目,如下所示:
我在运行时(在打开时)遇到问题,因为onCreateOptionsMenu只调用一次而onPrepareOptionsMenu似乎只在单击手机的menubutton时被调用。我只是想要添加这些新项目来刷新它。
感谢您的帮助!
答案 0 :(得分:0)
选择选项时会导致系统关闭选项菜单。这在onOptionsItemSelected()运行后发生。我猜你需要完成的是整个过程完成然后再次以编程方式打开选项菜单,这样就调用了onPrepareOptionsMenu()。
试试这个:
在onOptionsItemSelected()中,当用户选择“添加两个选项”选项时,请在活动中设置一个标记,但不要执行任何其他操作。
覆盖onOptionsMenuClosed()。检查标志是否已设置。如果是,则发布由UI线程在其下一次传递时执行。除了再次打开选项菜单之外,它什么都不做,例如
runOnUiThread(new Runnable(){ @覆盖 public void run(){ openOptionsMenu(); } });
覆盖onPrepareOptionsMenu()。检查标志是否已设置。如果是,则添加另外两个菜单项并取消设置标志。你需要做一些额外的工作来防止“添加更多项目”菜单项在每次按下时继续添加新项目,除非这是你正在寻找的行为。