Android MenuItem.setIcon(R.id)不工作
我有一个动作栏,在其中,我基于以下几个先决条件动态滑动图标图像:Android MenuItem.setIcon(R.id)不工作,android,android-menu,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中,我只
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,我还尝试了其他图标…,但它没有设置任何内容。是否存在影响此行为的缓存或其他内容?我对此很生气
编辑-一些代码:
-这很有效
-这行不通
编辑2-它只是关于设置图标。当我尝试将其设置为Enabled时,它会起作用-因此我确定我是在右菜单项上调用它。使用此选项。它会起作用
@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;
}
如果它只影响一个地方,那么再描述一个地方。那里的代码不同吗?当它不起作用时,用户正在采取什么行动?你能发布实际失败的代码吗?例如,menuId或等效值是如何计算的?这与其他地方的代码没有区别。没有其他线索,什么都没有。MenuId是用xml定义的,我会尝试粘贴一些代码,但实际上什么也看不到:/pastebin AddedHanks的链接,但这与我的问题无关;