Ich habe ein Problem in meiner App, wenn ich Popup-Menü whith Checkable Element verwenden.überprüfbares Element in Android PopupMenu funktioniert nicht wahrscheinlich
wollte ich mehr Prüfelementedaten in meinem Popup-Menü implementieren, aber wenn ein Element klicken verschwindet das Menü, obwohl ich auf all
das überprüfbar Verhalten gesetzt habe dies ist das Menü-Layout
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="all">
<item android:id ="@+id/sun"
android:checkable="true"
android:title="@string/sun"/>
<item android:id ="@+id/Mon"
android:title="@string/Mon"/>
<item android:id ="@+id/Tus"
android:title="@string/Tus"/>
<item android:id ="@+id/Wed"
android:title="@string/wed"/>
<item android:id ="@+id/Thu"
android:title="@string/Thu"/>
<item android:id ="@+id/fri"
android:title="@string/fri"/>
<item android:id ="@+id/Sat"
android:title="@string/Sat"/>
</group>
und das ist die switch-Anweisung, wo ich vermute, dass der Fehler hier ist, aber ich kann es nicht finden
PopupMenu popupMenu = new PopupMenu(getBaseContext(), ch_specificDay);
MenuInflater inflater = popupMenu.getMenuInflater();
inflater.inflate(R.menu.weekdays, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.sun:
if(item.isChecked())
{
item.setChecked(false);
sunCheck = false;
}else
{
item.setChecked(true);
sunCheck = true;
}
break;
case R.id.Mon:
if(item.isChecked())
{
item.setChecked(false);
monCheck = false;
}else
{
item.setChecked(true);
monCheck = true;
}
break;
case R.id.Tus:
if(item.isChecked())
{
item.setChecked(false);
TusCheck = false;
}else
{
item.setChecked(true);
TusCheck = true;
}
break;
case R.id.Thu:
if(item.isChecked())
{
item.setChecked(false);
ThrChec= false;
}else
{
item.setChecked(true);
ThrChec = true;
}
break;
case R.id.Wed:
if(item.isChecked())
{
item.setChecked(false);
wenCheck= false;
}else
{
item.setChecked(true);
wenCheck = true;
}
break;
case R.id.Sat:
if(item.isChecked())
{
item.setChecked(false);
satCheck = false;
}else
{
item.setChecked(true);
satCheck = true;
}
break;
case R.id.fri:
if(item.isChecked())
{
item.setChecked(false);
FriCheck = false;
}else
{
item.setChecked(true);
FriCheck = true;
}
break;
default:
break;
}
return true ;
}
});
popupMenu.show();
break;
default:
das gleiche das Popup-Menü noch zurück verschwinden, dass nicht – maiajam
arbeiten Sie haben Android zu verwenden : checkable = "true" in jedem Menüpunkt, nicht nur ein einzelner. –
das gleiche nichts nach dem Hinzufügen ändern, ich frage mich, das ist in android Dokument zu überprüfbaren Verhalten als alle warum nicht mit mir arbeiten @ – maiajam