如何从工具栏中将图标更改为我使用bbdd中显示的方法获得的新图标。 问题是我无法访问更新活动的事件以便能够更改图标。 我尝试使用onPrepareOptionsMenu方法,但我无法使其工作。 我无法通过将代码放在onStart中来执行此操作,因为它告诉我菜单对象为空或无效。
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
Drawable iconoMenu = obtenerIconoMenuCarro();
getMenuInflater().inflate(R.menu.menu_categorias, menu);
menu.getItem(0).setIcon(iconoMenu);
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_categorias, menu);
Drawable iconoMenu = obtenerIconoMenuCarro();
menu.getItem(0).setIcon(iconoMenu);
return true;
}
我的活动由AppCompactActivity扩展并通过AdapterView加载。 当我回到fragmentDialog或下一个活动时,我遇到了问题。
感谢。
答案 0 :(得分:0)
对我来说,最简单的方法是保留对MenuItem的引用以供以后使用。
菜单项膨胀时获取。
MenuItem menuItem;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_menu, menu);
//find the menu item from the id
menuItem = menu.findItem(R.id.myMenuItem);
return true;
}
然后使用mipmap资源或@drawable更改您需要的图像。
menuItem.setIcon(R.mipmap.ic_other_icon);