更改菜单文本android

时间:2014-09-15 08:52:27

标签: android android-actionbar menuitem

我有一个来自asynctask的字符串,我想将该字符串设置为actionbar中菜单项的标题。

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        this.menu = menu;

        if (menu!= null) {
               menu.findItem(R.id.azzera).setVisible(false);
            }

        MenuItem giornataItem = menu.findItem(R.id.giornata);
        giornataItem.setTitle(giornataTitle);

        return super.onCreateOptionsMenu(menu);
    }

    /* Called whenever we call invalidateOptionsMenu() */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // If the nav drawer is open, hide action items related to the content view

        MenuItem giornataItem = menu.findItem(R.id.giornata);
        giornataItem.setTitle(giornataTitle);

        return super.onPrepareOptionsMenu(menu);
    }

OnPrepareOptionsMenu工作正常,当我更改片段或drawernav打开时,标题仍然正确,但是onCreateOptionsMenu没有在应用程序启动时设置标题,因为在那一刻字符串为空,因为它在asynctask之前被调用。 如何将该字符串设置为标题?

1 个答案:

答案 0 :(得分:2)

在创建菜单时调用asynctask

    String tital=new Asynctask().execute("").get();

    MenuItem giornataItem = menu.findItem(R.id.giornata);
    giornataItem.setTitle(tital);

如果你正在谈论为你的活动制作一个字符串

然后致电

 String tital=new Asynctask().execute("").get();
 setTitle(tital);

 setContentView(R.layout.MainActivity);