有时候我们需要动态的隐藏和显示菜单,如果我们有6个菜单,现在的需求是在特定条件下隐藏这些菜单项,那么为了获得这些菜单项,我们必须这样写:@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.list_option, menu);
MenuItem menuItem1=(MenuItem)menu.findItem(R.id.menu1);
MenuItem menuItem2=(MenuItem)menu.findItem(R.id.menu2);
MenuItem menuItem3=(MenuItem)menu.findItem(R.id.menu3);
MenuItem menuItem4=(MenuItem)menu.findItem(R.id.menu4);
MenuItem menuItem5=(MenuItem)menu.findItem(R.id.menu5);
MenuItem menuItem6=(MenuItem)menu.findItem(R.id.menu6);
menuItem1.setVisible(false);
........
menuItem6.setVisible(false);
return true;
}
一个如此简单的功能,居然需要那么多重复的代码,一看就给人很不专业的感觉。
而且假如我要将隐藏的这6个菜单全部恢复,那我还要写同样的代码,只不过是将false改成true。
其实反正是全部屏蔽,只要遍历一下菜单项就好了,代码页很简单:for(int index=0;index
MenuItem menuItem=menu.getItem(index);
menuItem.setVisible(false);
}