在api 11之前,android菜单项启用/禁用不起作用

时间:2013-12-05 22:18:19

标签: android menu

请帮我解释一下这段代码。我想根据我的需要启用/禁用项目。它在API 11之后就像一个魅力,但以前不起作用。谢谢你的帮助!附:我正在使用SherlockActionBar。

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    final MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.menu_favorites, menu);
    AbstractMenuActionProvider actionProvider = new FavoriteActionProvider(
            this);
    actionProvider.setListener(this);
    favMenu = menu.findItem(R.id.menu_item_favorite);
    favMenu.setActionProvider(actionProvider);
    setFavMenuVisible(!isLoading);
    // TODO favorite is null!
    favorite = (ToggleButton) favMenu.getActionView().findViewById(
            R.id.favorite);
    return true;
}

@SuppressLint("NewApi")
// TODO works only after API 11
private void setFavMenuVisible(boolean visible) {
    if (favMenu != null) {
        favMenu.setVisible(visible);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            invalidateOptionsMenu();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

而不是

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            invalidateOptionsMenu();
        }

应该使用

supportInvalidateOptionsMenu();