actionbarsherlock - 如何使用 ActionBarCompat 获取 Menu 对象(在 ActionBar 中显示进度条)

标签 actionbarsherlock refresh progress android-actionbar-compat

我正在从 Sherlock 切换到 AppCompat,我习惯这样做,在加载某些内容时用进度条替换刷新操作项

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);
}

但是由于 Menu 是 AppCompat 中的常规菜单(与 Sherlock 不同),因此它显然会抛出

Call requires API level 11 (current min is 9): android.view.MenuItem#setActionView

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

谢谢!

最佳答案

我正在寻找错误的东西。您不想压缩菜单对象,而是压缩菜单项,如下所示

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

关于actionbarsherlock - 如何使用 ActionBarCompat 获取 Menu 对象(在 ActionBar 中显示进度条),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281917/

相关文章:

android - 从 SherlockFragment 启动 ACTION_VIEW Activity 会导致 NullPointerException

Android 软键盘在 2.2/2.3 中不显示,但在 3.0+ 中显示

javascript - 如何通过更改 window.location 来防止页面刷新

c# - WPF多线程进度对话框

html - WebSocket 进展

android - 导入 HoloEverywhere 时出错

android - 结合 ActionbarSherlock 和 Facebook API 图

forms - 如何在 Bootstrap 模式框中重置表单主体?

java - 单击时 fragment 不会自动更新

html - 如何使用纯 CSS 将 HTML5 进度元素设置为圆形/饼图