每次检查上面的项目时菜单都会消失

时间:2014-08-09 17:45:59

标签: android android-menu

我有一个包含一些项目的菜单。如果我点击它,它会正确地显示我的可检查项目;但是如果我检查一个项目,菜单就会消失(我不希望这种情况发生)。

感谢您的帮助!

这是XML

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_action_overflow"
        android:orderInCategory="101"
        android:showAsAction="always"
        android:title="Sottomenu">

    <menu>
        <item
            android:id="@+id/carsharing"
        android:icon="@drawable/ic_action_carsharing"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Car Sharing"
        android:checkable="true"/>
        <item
            android:id="@+id/bikesharing"
        android:icon="@drawable/ic_action_bikesharing"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Bike Sharing"
        android:checkable="true"/>
        <item
            android:id="@+id/asili"
        android:icon="@drawable/ic_action_asili"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Asili"
        android:checkable="true"/>
        <item
            android:id="@+id/biblio"
        android:icon="@drawable/ic_action_biblio"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Biblioteche"
        android:checkable="true"/>
        <item
            android:id="@+id/cags"
        android:icon="@drawable/ic_action_cag"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="C.A.G."
        android:checkable="true"/>
        <item
            android:id="@+id/farmacie"
        android:icon="@drawable/ic_action_farmacie"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Farmacie"
        android:checkable="true"/>
        <item
            android:id="@+id/impiantisportivi"
        android:icon="@drawable/ic_action_impiantisportivi"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Impianti Sportivi"
        android:checkable="true"/>
        <item
            android:id="@+id/teatri"
        android:icon="@drawable/ic_action_teatri"
            android:showAsAction="always|withText"

            android:orderInCategory="100"
        android:title="Teatri"
        android:checkable="true"/>
    </menu>
</item>

    </menu>

这是Java部分

@Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {



            case R.id.action_settings:

                return true;

            case R.id.carsharing:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < carsharingMarker.size(); x++){
                        carsharingMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < carsharingMarker.size(); x++){
                        carsharingMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;

            case R.id.asili:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < asiliMarker.size(); x++){
                        asiliMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < asiliMarker.size(); x++){
                        asiliMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;


            case R.id.biblio:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < biblioMarker.size(); x++){
                        System.out.println(biblioMarker.size());
                        biblioMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < biblioMarker.size(); x++){
                        biblioMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;

            case R.id.bikesharing:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < bikesharingMarker.size(); x++){
                        bikesharingMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < bikesharingMarker.size(); x++){
                        bikesharingMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;

            case R.id.cags:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < cagsMarker.size(); x++){
                        cagsMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < cagsMarker.size(); x++){
                        cagsMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;

            case R.id.farmacie:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < farmacieMarker.size(); x++){
                        farmacieMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < farmacieMarker.size(); x++){
                        farmacieMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;

            case R.id.impiantisportivi:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < impiantisportiviMarker.size(); x++){
                        impiantisportiviMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < impiantisportiviMarker.size(); x++){
                        impiantisportiviMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;

            case R.id.teatri:
                if (item.isChecked() == true) {
                    // mettere azione da fare quando non selezionato
                    item.setChecked(false);
                    for(int x=0;x < teatriMarker.size(); x++){
                        teatriMarker.get(x).setVisible(false);
                    }
                } else {
                    item.setChecked(true);
                    for(int x=0;x < teatriMarker.size(); x++){
                        teatriMarker.get(x).setVisible(true);
                    }
                    // mettere azione da fare quando selezionato
                }

                return true;


        }
    }

1 个答案:

答案 0 :(得分:0)

检查以下更改是否有效:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu1" android:alphabeticShortcut="a"
        android:title="Menu1" android:orderInCategory="1" />
    <item android:id="@+id/menu2" android:alphabeticShortcut="b"
        android:title="Menu2WithSubmenus" android:orderInCategory="2">
        <menu >
        <group android:id="@+id/group2" android:checkableBehavior="single">
            <item android:id="@+id/submenu1" android:title="submenu1" />
        </group>   
        </menu>
    </item>
</menu>