0

我试图通过单击菜单按钮来显示一个名为“共享”的菜单项。现在我需要为此共享菜单项创建一个子菜单项。当单击共享菜单项时,子菜单项应该是可见的(第一次单击时变为可见,下次不可见,依此类推)。我发现很少有显示子菜单项的解决方案,但这些解决方案与菜单项一起显示。

这是我创建菜单的代码

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);

}

当我单击菜单项而不是菜单按钮时,我需要显示剩余的两项。任何人都可以建议我吗

4

1 回答 1

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并且在下次调用时检查此布尔值,如果为真,则将其设置为假并使菜单不可见。使用此行使菜单可见或不可见:

menu.getItem(index).getSubMenu().getItem(index).setVisible(true); 将布尔值存储在sharedpreference.

于 2012-08-17T06:07:04.450 回答