是的,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 的替代菜单资源文件。