我有动作栏,我会根据以下几个前提条件动态刷图标图像:
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()时,它可以工作 - 所以我确定我在正确的菜单项上调用它。
答案 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;
}