Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionbarsherlock 如何使用ActionBarCompat获取菜单对象(在ActionBar中显示进度条)_Actionbarsherlock_Refresh_Progress_Android Actionbar Compat - Fatal编程技术网

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

Actionbarsherlock 如何使用ActionBarCompat获取菜单对象(在ActionBar中显示进度条),actionbarsherlock,refresh,progress,android-actionbar-compat,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

我正在从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);
}
但由于菜单是AppCompat中的常规菜单(与Sherlock不同),它显然会抛出

Call requires API level 11 (current min is 9): android.view.MenuItem#setActionView
我尝试了所有MenuItemCompat静态方法,但没有成功


谢谢

我找错东西了。您不希望复制菜单对象,而是复制菜单项,如下所示

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

MenuItemCompat.setActionView(刷新项、R.layout.actionbar\u不确定\u进度)

谢谢。它救了我一天。我也从夏洛克过渡到了康帕特。