MenuItem.setIcon(R.id)不起作用

时间:2013-06-17 15:54:06

标签: android android-menu

我有动作栏,我会根据以下几个前提条件动态刷图标图像:

if(atPosition == null & parentActivity.isLocationFixed())
setActionButton(R.id.menu_plant, R.drawable.ic_menu_plant);
else
setActionButton(R.id.menu_plant, R.drawable.ic_menu_plant_disabled);

在setActionButton中,我只找到合适的项目并设置图标:

MenuItem item = menu.findItem(menuId);
item.setIcon(iconRes);

现在奇怪的东西:这适用于我的所有应用程序,除了一个地方。我试图记录,内部的内容,但该图标的ID是正确的 - setIcon()只是没有设置该图标。我仔细检查了图标资源,资源ID(我用另一个图标尝试了......),但它没有设置任何东西。是否有任何缓存或影响此行为的事情?我生气了:(。

编辑 - 一些代码: Pastebin 1 - 这很有效 Pastebin 2 - 这不起作用

编辑2 - 这只是关于setIcon()。当我尝试setEnabled()时,它可以工作 - 所以我确定我在正确的菜单项上调用它。

1 个答案:

答案 0 :(得分:-2)

使用它。它有效。

        @Override
       public boolean onMenuItemSelected(final int featureId, final android.view.MenuItem item)
       {

           switch (item.getItemId()) {

           case R.id.icon: //menuitem id 

               Drawable iconRes = getDrawable().getResources(R.darawable.new-icon);
               item.setIcon(iconRes);
                       return false;
           }