Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OnOptions MenuClosed()在显示菜单后立即按下“后退”键时执行。但是_Android - Fatal编程技术网

Android OnOptions MenuClosed()在显示菜单后立即按下“后退”键时执行。但是

Android OnOptions MenuClosed()在显示菜单后立即按下“后退”键时执行。但是,android,Android,在OnPrepareOptions菜单方法中,我在即将显示菜单时停止了线程,因为后台线程占用了大量处理时间,使得显示和单击其中一个菜单而不是菜单按钮几乎不可能。线程停止后,显示并单击菜单而不是菜单按钮变得更易于管理。显示菜单后立即按下“后退”键时出现问题。当用户点击“后退”键后,我需要重新启动线程。当我合并公共void-onoptions-menuclosedmenu菜单方法时,菜单显示后立即按下的“后退”键执行void-onoptions-menuclosedmenu菜单方法。但是,当我显示其

在OnPrepareOptions菜单方法中,我在即将显示菜单时停止了线程,因为后台线程占用了大量处理时间,使得显示和单击其中一个菜单而不是菜单按钮几乎不可能。线程停止后,显示并单击菜单而不是菜单按钮变得更易于管理。显示菜单后立即按下“后退”键时出现问题。当用户点击“后退”键后,我需要重新启动线程。当我合并公共void-onoptions-menuclosedmenu菜单方法时,菜单显示后立即按下的“后退”键执行void-onoptions-menuclosedmenu菜单方法。但是,当我显示其中一个菜单中的子菜单,然后点击“后退”键时,void-onOptionsMenuClosedMenu菜单方法没有得到执行。如果有人能回答这个问题,我真的很感激。

它没有被调用,因为它只被调用为主菜单而不是子菜单。。因此,您可能会考虑在OnOptions ItemSelectedMenuItem项目和onBackPressed项目内部添加一些标志 例如:

布尔IsubMenuItemPressed; @凌驾 公共布尔值OnOptions ItemSelectedMenuItem项{ 开关item.getItemId{ case R.id.subMenuItem://包含子菜单的项 IsubMenuItemPressed=true; 打破 } } @凌驾 反压公共空间{ 如果isSubMenuItemPressed{//执行您想要的操作 IsubMenuItemPressed=false; } }
非常感谢您抽出时间回答这个问题。我将测试您提供的代码。我刚刚意识到,如果不测试代码,它将不起作用,因为当我显示其中一个菜单中的一个子菜单,然后点击“后退”键时,OnOptions ItemSelected方法将不会执行,因为我没有选择任何子菜单,而只是点击“后退”键。此外,在按下菜单按钮的过程中,因为焦点不在Activity类中,在我的例子中,它不再是MapActivity,我认为onBackPressed方法将不起作用。我在OnPrepareOptions功能表中设置了布尔值,并在OnBackpress上签入,以此来测试该场景。很抱歉,现在我知道了为什么您的答案是这样的。我没有点击其中一个子菜单,而是显示了其中一个菜单中的子菜单,然后点击了后退键。我真的不明白。。。请您重新表述您的问题,以便其他人能够提供帮助。当我通过单击其中一个主菜单而不单击其中一个子菜单来显示子菜单,然后立即按“后退”键时,void-onoptions-menuclosedmenu菜单方法未得到执行。如果有人能回答这个问题,我真的很感激。