我试图在按下MapActivity中的后退按钮后调用MainActivity中的onPrepareOptionsMenu(),但它在创建一次后未被调用。根据文档,必须在显示菜单之前立即调用它。这种情况在调用onBackPressed()后有效吗?PreparetheScreen'sstandardoptionsmenutobedisplayed.Thisiscalledrightbeforethemenuisshown,everytimeitisshown.Youcanusethismethodtoefficientlyenable/disableitemsorotherwisedyn
当我使用onPrepareOptionsMenu添加菜单项时,菜单项会在操作栏中复制其自身。我正在使用fragment并在主要Activity的ActionBar中创建初始菜单,如下所示:...@OverridepublicbooleanonCreateOptionsMenu(MenuparamMenu){super.onCreateOptionsMenu(paramMenu);paramMenu.add(0,1,0,"DashBoard").setIcon(R.drawable.ic_dashboard).setShowAsAction(1);returntrue;}然后我在其中一个
我们有一个使用AppCompatActivity和多个fragment的应用程序,每个fragment都有助于选项菜单。(即fragment覆盖onCreateOptionsMenu并插入自己的菜单项)这些fragment还覆盖了onPrepareOptionsMenu,以便根据应用的状态有条件地启用/禁用某些菜单项。在appcompat的更新版本(22)之前,为每个fragment调用了onPrepareOptionsMenu函数,并且一切正常。但现在,它不再被调用。此行为仅出现在API10中。在较新的API中它可以正常工作。有什么想法吗? 最佳答案
publicclassBFragmentTabextendsFragment{@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){//Inflatethelayoutforthisfragmentreturninflater.inflate(R.layout.recents,container,false);}@OverridepublicvoidonPrepareOptionsMenu(Menumenu){menu.clear();Men
你知道如何重命名现有菜单吗?我可以在按下菜单项时重命名。但是我不知道如何在按下按钮时访问菜单项。请指教。 最佳答案 如果你能稍微澄清一下这个问题就好了,但是每次用户在你的Activity中按下他们的Android设备上的Menu时,onPrepareOptionsMenu方法被调用。第一次显示菜单时(即只显示一次),onCreateOptionsMenu方法被调用。基本上,您应该在onPrepareOptionsMenu方法中进行任何更改,例如启用/禁用某些菜单项,或根据情况更改菜单项文本。举个例子:@Overridepublicb
我在ActionBar中设置一些fragment菜单项时遇到了问题,我找到了解决它的方法,但我不明白为什么它会起作用。我想在onCreateOptionsMenu方法中从菜单xml文件中扩充菜单项后立即更改它的可见性。该代码似乎工作正常,但没有明显的效果。我解决了在onCreateOptionsMenu方法中膨胀菜单但在onPrepareOptionsMenu方法中更改它的可见性的问题。我想知道的是,为什么在onCreateOptionsMenu中更改可见性不起作用。我在onPrepareOptionsMenu中可以做什么而在onCreateOptionsMenu中不能做什么?这里有什
我无法让onPrepareOptionsMenu()正常工作。无论我尝试什么,我都无法调用它。我的应用程序的架构如下:我的主Activity包含一个包含ViewPager的Fragment,ViewPager又具有四个子Fragment实例。目前,我正在(成功地)使用onCreateOptionsMenu()填充Activity中的初始选项菜单,但我希望添加一些与每个Activity子Fragment相对应的额外选项。在我的子fragment中,我确保setHasOptionsMenu(true)在onCreate()中被调用并且getSherlockActivity().suppor
好的,所以我有FavoritesList扩展GalleryList,后者扩展了ListFragment:publicstaticclassFavoritesListextendsGalleryList{publicstaticFavoritesListnewInstance(intpage){FavoritesListlist=newFavoritesList();Bundleargs=newBundle();args.putInt("page",page);list.setArguments(args);returnlist;}@OverridepublicvoidonCreate(
我需要能够更改android上的选项菜单(按下菜单按钮时显示的菜单),以便在一种情况下(例如按下按钮时),它将使用特定的菜单资源(XML文件如/res/menu/...)用于菜单,在另一种情况下,使用不同的XML文件。到目前为止,我只看到了不使用xml的示例(示例here和here),它们运行良好,但我希望能够在某些情况下更改整个菜单。我试图修改我找到的解决方案,但我的试验都没有奏效。如果可能,我宁愿仅在需要使用与当前菜单资源不同的菜单资源更新菜单时才重新创建菜单。请帮助我。 最佳答案 如果您想在首次创建选项菜单后随时更改它,则必须
我正在覆盖onPrepareOptionsMenu以隐藏和显示菜单项。使用API级别16模拟器进行测试时;第一次打开菜单时不会调用onPrepareOptionsMenu。但是当我重新打开菜单时它起作用了。问题仅在于第一次使用。你可以用这个简单地测试它;@OverridepublicvoidonPrepareOptionsMenu(Menumenu){Toast.makeText(this.getActivity(),"pre",Toast.LENGTH_SHORT).show();super.onPrepareOptionsMenu(menu);}有什么想法吗?