如何更改操作栏中菜单项的标题

时间:2013-01-26 01:59:12

标签: android menu android-actionbar title

我正在尝试更改其中一个操作栏菜单项的标题。当用户没有登录时,它说登录是正常的标题,但是一旦用户登录,我希望它改为登出。我现在所拥有的只是测试我是否可以使它工作,但每当我使用代码运行它来更改标题时它就会崩溃。

以下是代码:

public MenuItem logout;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        background = findViewById(R.id.status);
        status = findViewById(R.id.image); 
        logout = (MenuItem) findViewById(R.id.menu_login);
        logout.setTitle("Blah");
        new CheckStatusTask().execute();
    }

2 个答案:

答案 0 :(得分:3)

崩溃是因为MenuItem在视图层次结构中不存在,只有在创建或显示菜单时才会呈现它。您需要将代码放在onCreateOptionsMenuOnPrepareOptionsMenu中,具体取决于对您有意义的内容 - 首次显示菜单时调用onCreateOptionsMenu一次,OnPrepareOptionsMenu为每次显示都会调用。

在这些功能中,您可以使用

找到您的菜单项
logout = (MenuItem) menu.findViewById(R.id.menu_login);

答案 1 :(得分:-2)

我想出了如何解决这个问题。我做了两个菜单xml文件,然后在onCreateOptionsMenu我把if语句检查用户是否登录,并选择正确的菜单。