【发布时间】:2015-03-17 18:00:27
【问题描述】:
我正在尝试更改菜单项图标,但该图标没有被更改。
这是我如何找到 MenuItem(工作正常):
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_location_actions, menu);
mActionLocation = menu.findItem(R.id.action_location);
return super.onCreateOptionsMenu(menu);
}
方法UpdateIcon:我截取了一张截图,以便您可以看到(在红框中)系统已找到图像。
mActionLocation 是一个 MenuItem,它在调用此方法之前被初始化并且不为空。
有人有想法吗?
更新(@vinitius 帮助解决)
UpdateIcon 方法:
private void UpdateIcon(boolean locationOn) {
mActionLocation = locationOn; // mActionLocation is a global boolean
invalidateOptionsMenu();
}
onPrepareOptionsMenu 覆盖:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// Toggle location icon
if (mActionLocation) {
menu.findItem(R.id.action_location).setIcon(R.drawable.ic_location_on_white_24dp);
} else {
menu.findItem(R.id.action_location).setIcon(R.drawable.ic_location_off_white_24dp);
}
return super.onPrepareOptionsMenu(menu);
}
【问题讨论】:
-
很好的答案。谢谢