onPrepareOptionsMenu做什么?

我想为Android做出Option Menu ,我已经访问过这个网站。 在他们的脚本中,我find了onPrepareOptionsMenu ,我试着编译和运行使用Android 2.3.3编译器,并且没有onPrepareOptionsMenu ,两者都有效,但是我没有看到任何区别。

 public boolean onCreateOptionsMenu(Menu menu){ //code here } public boolean onOptionsItemSelected(MenuItem item){ //code here } public boolean onPrepareOptionsMenu(Menu menu){ //code here } 

实际上onPrepareOptionsMenu方法是做什么的? 这个方法重要吗? 我可以删除这个方法吗?


加成

哦,我也听说在Android 3.0中的操作栏,它说,操作栏是使Option Menu的替代方法,它使用onPrepareOptionsMenu 。 是对的吗?

谢谢…

Solutions Collecting From Web of "onPrepareOptionsMenu做什么?"

看一下API :

准备显示屏幕的标准选项菜单。 在菜单显示之前,每次显示时调用它。 您可以使用此方法高效地启用/禁用项目或以其他方式dynamic修改内容。

如果要在菜单显示给用户之前更改菜单,可以将代码放入onPrepareOptionsMenu 。 在某些情况下,我dynamic地使用它来禁用某些菜单选项。

作为一个例子,当一个人可能想禁用一个菜单选项时,我有一个应用程序,在那里有一个指定目的地的方法。 我的一个菜单选项是计算到目的地的路线。 但是,如果未指定目的地,则该选项不适用,因此我使用onPrepareOptionsMenu在不适用时禁用该菜单选项。

从Android 3.0及以上版本,有一个菜单栏的ActionBar。 最重要的项目是进入ActionBar本身,但是当操作栏上没有足够的空间时会出现溢出。 可以指定菜单项应该总是在溢出菜单中,而不是在操作栏本身。 在某些设备上,操作栏溢出对应于设备上的永久菜单button,而在其他没有菜单button的设备上,溢出菜单在操作栏的右侧被看作三个垂直点。

onCreateOptionsMenu被调用一次,当你的活动是第一次创build。 如果返回false,则不显示选项菜单,并且不会调用onPrepareOptionsMenu。

如果onCreateOptionsMenu返回true,则在显示活动之前还会调用onPrepareOptionsMenu,并且每次选项菜单都失效。 如果您需要在创build后启用/禁用,显示/隐藏或添加/删除项目,请使用onPrepareOptionsMenu。

如果菜单不变,请使用onCreateOptionsMenu。