我正在使用onCreateOptionsMenu在片段中显示操作栏Sherlock菜单。我有一个要求,如果列表为null,则使菜单被禁用,如果存在,则启用菜单中的一些选项并进行更改。 这是我的代码
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
if ((list != null && list.size() > 0)
|| (response != null && response.messageInfo != null && response.messageInfo
.size() > 0)) {
SubMenu submenus = menu.addSubMenu("");
submenus.add(1, 1, 1, "Send New Message");
submenus.add(1, 2, 2, "Filter by Category");
MenuItem subitem = submenus.getItem();
subitem.setIcon(R.drawable.img_sorting);
subitem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
} else {
menu.add(1, 10, 10, "NOT Clickable").setIcon(R.drawable.img_hide)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
}
所以这里当它第一次加载它时它处于禁用状态,即使列表仍然处于禁用状态,直到我刷新它没有改变它的属性。
答案 0 :(得分:5)
如果您使用Sherlock,请尝试拨打supportInvalidateOptionsMenu();
,然后尝试invalidateOptionsMenu();
寻找原住民ActionBar