为什么不能使用相同的菜单变量两次打开ContextMenu?

时间:2019-07-08 11:48:51

标签: android menu contextmenu

我需要动态更改可见性和...功能吗?的上下文菜单项,而不必为带有许多菜单选项的大型应用程序使用大约十五个布尔值,因此我认为我可以修改ContextMenu变量,然后再次对其进行膨胀,但打开一次后不会再次打开。为什么呢?

我尝试关闭它并打开,强制再次将其打开(仅以无限循环结束),以及所有其他方式。我曾尝试在此处以及Google上查找文档和多个问题,但对于为什么发生这种情况我一无所知。我知道这不是处理contextMenus的“正确”方法,但是我想知道为什么发生这种情况。


//Earlier in the activity
[...]
menu.getItem(0).setVisibility(false);
[...]

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        if(this.menu == null){
            this.menu = menu;
            getMenuInflater().inflate(R.menu.menu_test, this.menu);
        } else {
            getMenuInflater().inflate(R.menu.menu_test, this.menu);
        }
    }

菜单仅打开一次。只要我继续使用私有变量“ menu”(this.menu),它将不会再次打开,这是为什么?我想知道,据我所知,这将帮助我理解如何正确解决当前遇到的设计难题。

0 个答案:

没有答案