菜单中的子菜单

时间:2012-08-17 05:58:17

标签: android menu

我正在尝试通过单击菜单按钮显示名为“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);

}

当我点击菜单项而不是菜单按钮时,我需要显示剩下的两个项目。 有人可以建议我吗

1 个答案:

答案 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 falseon false show the menu and set the bool to true并在下次调用时检查此bool,如果为true,则将其设置为false并使菜单不可见。使用此行可使菜单可见或不可见:< / p>

menu.getItem(index).getSubMenu().getItem(index).setVisible(true); 将bool存储在sharedpreference