请帮我解释一下这段代码。我想根据我的需要启用/禁用项目。它在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();
}
}
}
答案 0 :(得分:0)
而不是
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
invalidateOptionsMenu();
}
应该使用
supportInvalidateOptionsMenu();