首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新创建活动时,菜单为空

问重新创建活动时,菜单为空
EN

Stack Overflow用户
提问于 2014-06-24 14:15:12
回答 1查看 687关注 0票数 0

我已经扩展了基本活动中的操作栏菜单,并修改了基本活动中的操作栏项目。但是当我改变方向时,菜单总是空的,这就是为什么它不更新我的操作栏项目的原因。为什么它是空的?下面是我试用过的代码:

代码语言:javascript
复制
@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.base, menu);
        mMenu = menu;
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        // switch (item.getItemId()) {

        if (item.getItemId() == R.id.action_refresh) {
            refreshNewsData();
            return true;
        }
        if (item.getItemId() == R.id.action_share) {
            sharenewsData();

            return true;
        }
        if (item.getItemId() == R.id.action_favorite) {
            addFavorites();
            return true;
        }

        return super.onOptionsItemSelected(item);

    }

我已经在基本活动中编写了这段代码。protected void showIcons(int id) {

代码语言:javascript
复制
if (mMenu != null) {

            MenuItem item = mMenu.findItem(id);
            item.setVisible(true);
        }
    }

    protected void hideIcons(int id) {
        if (mMenu != null) {

            MenuItem item = mMenu.findItem(id);
            item.setVisible(false);
        }

我正在使用这些方法来更新操作栏菜单项

EN

回答 1

Stack Overflow用户

发布于 2014-06-24 14:21:42

不能直接更新ActionBar菜单项。每当您想要更新菜单项时,调用invalidateOptionsMenu(),这将重新绘制操作栏菜单,并调用onPrepareOptionsMenu()。你必须处理好你想要在onPrepareOptionsMenu()中显示/隐藏的菜单项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24379521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档