我正在尝试通过单击菜单按钮显示名为“share”的菜单项。 现在我需要为此共享菜单项创建一个子菜单项。 单击共享菜单项时,子菜单项应该是可见的(当第一次单击时,在下次不可见时变为可见,依此类推)。 我发现很少有解决方案显示子菜单项,但这些解决方案与菜单项一起显示。
这是我创建菜单的代码
public boolean onCreateOptionsMenu(Menu m) {
m.add(1,1,0,"one").setIcon(R.drawable.icon);
m.add(1,2,0,"two").setIcon(R.drawable.icon);
m.add(1,3,0,"three").setIcon(R.drawable.icon);
m.add(1,4,0,"four").setIcon(R.drawable.icon);
m.getItem(0).setVisible(false);
m.getItem(1).setVisible(false);
return true;
}
和我的onPrepareOptionsMenu()
public boolean onPrepareOptionsMenu(Menu m) {
if(isvisible)
{
isvisible = false;
m.getItem(0).setVisible(true);
m.getItem(1).setVisible(true);
}
else{
isvisible = true;
m.getItem(0).setVisible(false);
m.getItem(1).setVisible(false);
}
return super.onPrepareOptionsMenu(m);
}
当我点击菜单项而不是菜单按钮时,我需要显示剩下的两个项目。 有人可以建议我吗
答案 0 :(得分:1)
覆盖以下方法:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
return super.onPrepareOptionsMenu(menu);
}
每次显示菜单前都会调用上述方法。
Here you can maintain a bool and hide the submenu depending upon the condition of your check.
修改强>
默认情况下set bool to false
和on false show the menu and set the bool to true
并在下次调用时检查此bool,如果为true,则将其设置为false并使菜单不可见。使用此行可使菜单可见或不可见:< / p>
menu.getItem(index).getSubMenu().getItem(index).setVisible(true);
将bool存储在sharedpreference
。