我需要动态更改可见性和...功能吗?的上下文菜单项,而不必为带有许多菜单选项的大型应用程序使用大约十五个布尔值,因此我认为我可以修改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),它将不会再次打开,这是为什么?我想知道,据我所知,这将帮助我理解如何正确解决当前遇到的设计难题。