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

}

メニューボタンではなくメニュー項目をクリックしたときに、残りの2つの項目が表示されるようにする必要があります。誰かが私を提案できますか

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は、次の呼び出しでこのブール値をチェックし、trueの場合はfalseに設定してメニューを非表示にします。次の行を使用して、メニューを表示または非表示にします。

menu.getItem(index).getSubMenu().getItem(index).setVisible(true); ブール値をに格納しsharedpreferenceます。

于 2012-08-17T06:07:04.450 に答える