Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MenuItem.setIcon(R.id)不工作_Android_Android Menu - Fatal编程技术网

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的链接,但这与我的问题无关;