У меня есть панель действий, в котором я динамически ударяя значок изображения на основе нескольких предварительных условий, как это:MenuItem.setIcon (R.id) не работает
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 я просто найти подходящий объект и set icon к нему:
MenuItem item = menu.findItem(menuId);
item.setIcon(iconRes);
И теперь странные вещи: это работает для всего моего приложения, кроме одного места. Я попытался войти в систему, что входит внутрь, но идентификатор этого значка правильный - setIcon() просто не устанавливает этот значок. Я дважды проверял ресурсы значков, идентификатор ресурса (я попробовал его с другими значками ...), но он ничего не устанавливает. Есть ли кеш или что-то, что влияет на это поведение? Я получаю с ума, что :(
EDIT - некоторый код:. Pastebin 1 - это работает Pastebin 2 - это не работает
EDIT 2 - это как раз о SetIcon() Когда я пытаюсь setEnabled.(), она работает - так что я уверен, что я звоню его по пункту меню правой
Если это влияет только на «одно место», то опишите это «одно место» больше. Является ли код другим? Какие действия предпринимает пользователь, когда он не работает? –
Не могли бы вы опубликовать фактический код, который терпит неудачу, а не общую идею? Например, как вычисляется 'menuId' (или эквивалент)? –
Нет разницы в коде между «этим» и «другими местами». Ни одна нить, ничего. MenuId определяется в xml, как и другие, я попытаюсь использовать некоторый код, но на самом деле ничего не видно:/ – shmoula