在Android中,如何在onOptionsItemSelected()中更改不同MenuItem的标题

Abh*_*bhi 2 android

在Android中的选项菜单中单击某个MenuItem时,我需要在同一菜单中更改不同MenuItem的标题.这样做的方法是什么?

单击选项菜单中的MenuItem时,将调用onOptionsItemSelected(MenuItem menuitem).您可以更改在onOptionsItemSelected(MenuItem menuitem)中作为参数传递的MenuItem的标题,但不能更改任何其他MenuItem的标题.我需要知道如何更改未作为参数传递给onOptionsItemSelected()的MenuItem的标题,但它属于同一个Menu.

我没有找到一种方法来处理在onOptionsItemSelected方法中包含Menu的问题(在单击任何MenuItem时调用它).

非常感谢.

Bra*_*don 6

来自Android开发指南:http://developer.android.com/guide/topics/ui/menus.html

打开时更改菜单

onCreateOptionsMenu()仅在第一次打开选项菜单时调用该方法.系统会保留并重新使用您在此方法中定义的菜单,直到您的活动被销毁.如果要在每次打开时更改"选项"菜单,则必须覆盖该onPrepareOptionsMenu()方法.这将传递Menu当前存在的对象.如果您要根据应用程序的当前状态删除,添加,禁用或启用菜单项,这将非常有用.

注意:您永远不应根据当前焦点视图更改"选项菜单"中的项目.在触摸模式下(当用户未使用轨迹球或d-pad时),视图无法获得焦点,因此您永远不应将焦点用作修改"选项"菜单中项目的基础.如果要提供对视图具有上下文相关性的菜单项,请使用上下文菜单.


Zoo*_*ooz 5

你可以这样做.

public boolean onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    getMenuInflater().inflate(R.menu.photoviewer_menu, menu);
    MenuItem item = menu.findItem(R.id.photoviewer_menu_button);
    item.setTitle("title");
    return super.onPrepareOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)