首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ActionBarCompat获取菜单对象(在ActionBar中显示进度条)

如何使用ActionBarCompat获取菜单对象(在ActionBar中显示进度条)
EN

Stack Overflow用户
提问于 2013-10-09 20:25:26
回答 2查看 704关注 0票数 2

我将从神探夏洛克切换到AppCompat,并且我习惯于这样做:在加载这样的东西时,我用进度条替换刷新操作项。

代码语言:javascript
复制
public void setRefreshButtonState(boolean refreshing) {
    if (mOptionsMenu == null) {
        return;
    }

    final MenuItem refreshItem = mOptionsMenu.findItem(R.id.action_refresh);
    if (refreshItem != null) {
        if (refreshing) {
            refreshItem.setActionView(R.layout.actionbar_indeterminate_progress);
        } else {
            refreshItem.setActionView(null);
        }
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    mOptionsMenu = menu;
    return super.onCreateOptionsMenu(menu);
}

但是由于菜单是AppCompat中的常规菜单(与神探夏洛克不同),它显然会抛出

代码语言:javascript
复制
Call requires API level 11 (current min is 9): android.view.MenuItem#setActionView

我尝试了所有的MenuItemCompat静态方法,但都没有成功。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-16 23:23:21

我在寻找错误的东西。您不想添加菜单对象,但要添加菜单项,如下所示

MenuItemCompat.setActionView(refreshItem, R.layout.actionbar_indeterminate_progress);

票数 2
EN

Stack Overflow用户

发布于 2013-12-19 10:19:24

代码语言:javascript
复制
public void setActionItemInProgress(MenuItem menuItem, boolean refreshing) {
    if (refreshing) {
        MenuItemCompat.setActionView(menuItem, R.layout.actionbar_indeterminate_progress);
    } else {
        MenuItemCompat.setActionView(menuItem, null);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19281917

复制
相关文章

相似问题

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