0

我有操作栏,在其中我根据以下几个先决条件动态滑动图标图像:

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() 时,它可以工作 - 所以我确定我在正确的菜单项上调用它。

4

1 回答 1

-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;
           }
于 2013-12-26T12:57:06.467 回答