以编程方式关闭选项菜单

3

我有一个只有一个菜单项的菜单。当用户点击操作栏中的菜单图标时,我通过覆盖onMenuOpened()方法自动为用户选择该菜单项,代码如下:

@Override
public boolean onMenuOpened(int featureId, Menu menu)
{
    if(menu != null)
    {
        onOptionsItemSelected(menu.getItem(0));
        closeOptionsMenu();
    }
    return super.onMenuOpened(featureId, menu);
}

这里的问题是菜单在打开后没有关闭。因此,该菜单项会打开另一个片段,当用户按下返回按钮回到他点击菜单的原始片段时,它仍然处于打开状态。

我该如何关闭它?


在选择后尝试添加invalidateOptionmenu。 - Divyesh Patel
没有帮助...当按下返回键时,菜单仍然显示。 - CodeMonkey
你是从片段还是活动中调用菜单项? - Divyesh Patel
onCreateMenu和onOptionItemSelected是在活动级别完成的。 - CodeMonkey
它是AppCompatActivity。 - CodeMonkey
1个回答

0

改变调用的位置并没有帮助。 - CodeMonkey
好的,尝试一件事,在完成所需操作后,在您的onOptionsItemSelected()函数中调用closeOptionsMenu(),而不是在onMenuOpened()中调用。 - schinj
我尝试在动作本身之前和之后进行调用,但菜单仍然保持打开状态。 - CodeMonkey
我想说的是,在你的onOptionsItemSelected()实现中调用closeOptionsMenu()。你做到了吗? - schinj
是的。我已经在那里添加了该动作本身被调用之前和之后,但仍然没有帮助。 - CodeMonkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接