Android:在调用OnCreateOptions菜单之前设置菜单项图标

Android:在调用OnCreateOptions菜单之前设置菜单项图标,android,menu,android-menu,Android,Menu,Android Menu,以编程方式更改菜单项图标的常规方法是在OnCreateOptions菜单后保存对菜单的引用,称为: private Menu mOptionsMenu; @Override public boolean onCreateOptionsMenu(Menu menu) { mOptionsMenu = menu; getMenuInflater().inflate(R.menu.menu_main, menu); return true; } 然后像这样访问它:mOptio

以编程方式更改菜单项图标的常规方法是在OnCreateOptions菜单后保存对菜单的引用,称为:

private Menu mOptionsMenu;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    mOptionsMenu = menu;
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}
然后像这样访问它:mOptionsMenu.findItemR.id.action\u something.setIconR.mipmap.new\u icon

我的问题是如何在调用OnCreateOptions菜单之前设置新图标-所以我没有菜单的引用


谢谢,

我认为没有办法在OnCreateOptions菜单之前获取菜单的引用。另外,为什么要在OnCreateOptions菜单前设置图标


很抱歉将其作为答案发布,因为我需要50分才能发表评论。

请查看我对答案的评论。这很复杂,我有GpsStatus。根据菜单上的gps状态设置图标,侦听器。所以我需要参考资料。。。而且,在创建选项菜单之前调用的侦听器无论何时状态更改,您都可以始终使用InvalidateOptions菜单再次绘制菜单,并在菜单中设置相应的图标。请注意,如果位置侦听器在生命周期中第一次调用的时间太慢,则无法控制它的调用时间,因为更新太多一次又一次地重新绘制整个菜单是不可行的,而且由于您无法控制位置侦听器的回调,我建议您使用一个条带或类似于操作栏下面的东西来显示gps侦听器的状态,而不是使用操作栏菜单。