我有一个包含一些项目的菜单。如果我点击它,它会正确地显示我的可检查项目;但是如果我检查一个项目,菜单就会消失(我不希望这种情况发生)。
感谢您的帮助!
这是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;
}
}
答案 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>