如何在Android中设置菜单的标题

use*_*265 2 java android menu title

我正在尝试动态设置菜单的标题.

检索并设置如下:

ItemView menuTitle = ((ItemView) findViewById(R.id.menu_filter));
menuTitle.setTitle("TITLE_HERE");
Run Code Online (Sandbox Code Playgroud)

只要它在onOptionsItemSelected(MenuItem item)方法中就可以正常工作.

我无法找到一种方法来设置这个onPrepareOptionsMenuonCreateOptionsMenu方法作为findViewById返回null(即使在充气菜单后).

奇怪的是,文档中似乎没有任何内容可以实现这一点,并且谷歌搜索对于这样一个看似简单的问题并没有太多关注.

use*_*265 5

我一定是刚刚迷失了,没有意识到菜单中有一个名为 findItem 的函数...

menu.findItem(R.id.MENU_TITLE).setTitle("MY TITLE");
Run Code Online (Sandbox Code Playgroud)


Jit*_*iya 5

我建议在活动中保留对您收到的Menu对象的引用onCreateOptionsMenu,然后使用它来检索MenuItem需要在您需要时进行更改的内容.例如,您可以按照以下方式执行某些操作:

public class YourActivity extends Activity {

    private Menu menu;
    private String inMenuTitle = "Set to In";
    private String outMenuTitle = "Set to Out";
    private boolean flag = false;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        // Create your menu...

        this.menu = menu;
        return true;
    }

    private void updateMenuTitles() {
        MenuItem menuItem = menu.findItem(R.id.bedSwitch);
        if (flag) {
            menuItem .setTitle(outMenuTitle);
        } else {
            menuItem .setTitle(inMenuTitle);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

或者,您可以覆盖onPrepareOptionsMenu以在每次显示菜单时更新菜单项.


归档时间:

查看次数:

13760 次

最近记录:

11 年 前