是的,onCreateOptionsMenu
可以动态更新。在 Android 中,您可以根据需要随时更新选项菜单。为了实现这一目标,您需要在 onCreateOptionsMenu
方法中调用 MenuInflater
的 inflate
方法来加载菜单资源文件,并在需要更新菜单时调用 Menu
对象的 clear
和 add
或 replace
方法来添加或修改菜单项。
以下是一个简单的示例,展示了如何在 Activity 中动态更新选项菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 加载菜单资源文件
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.example_menu, menu);
// 获取菜单项
MenuItem menuItem = menu.findItem(R.id.action_example);
// 根据条件更新菜单项
if (someCondition) {
menuItem.setTitle("New Title");
menuItem.setIcon(R.drawable.new_icon);
} else {
menu.clear();
inflater.inflate(R.menu.example_menu_alternative, menu);
}
return true;
}
在这个示例中,我们首先加载了一个名为 example_menu
的菜单资源文件。然后,我们根据某个条件来更新菜单项。如果条件满足,我们修改现有菜单项的标题和图标;否则,我们清除现有菜单并加载一个名为 example_menu_alternative
的替代菜单资源文件。