如何根据If语句在运行时更改菜单项图标?这是我拥有的代码,它导致崩溃。

public boolean onPrepareOptionsMenu(Menu Item) {
    if (favorite == true){
        itema = (MenuItem) findViewById(R.id.action_search);
        itema.setIcon(R.drawable.ic_action_importants);
    }
    return true;
}

最佳答案

您正在调用活动的findViewById,应该通过调用菜单findItem获得更多的运气。

public boolean onPrepareOptionsMenu(Menu menu)
{
    MenuItem myMenuItem = menu.findItem(R.id.myMenuItemId);
    myMenuItem.setIcon(R.drawable.ic_myAction);
    return true;
}

09-30 23:04