2017-08-02 94 views
0

我有一個彈出式菜單,有兩個複選框,但是當我按下其中任何一個時,菜單就會消失,而且它們的狀態也不會改變。我環顧四周,發現的東西,替別人打工,但他們不爲我彈出式菜單複選框不會

public boolean onOptionsItemSelected(MenuItem item) 
{ 


    if(item.isChecked()) 
    { 
     item.setChecked(false); 
    } 
    else 
    { 
     item.setChecked(true); 
    } 
    switch(item.getItemId()) 
    { 
     case R.id.lockscreen: 
      if(item.isChecked()) item.setChecked(!item.isChecked()); 
      break; 
     case R.id.notif: 
      if(item.isChecked()) item.setChecked(!item.isChecked()); 
      break; 
     default: 
      return super.onOptionsItemSelected(item); 

    } 


    return true; 
} 

這在XML的菜單操作

<group android:checkableBehavior="all"> 
    <item android:id="@+id/lockscreen" 
     android:title="Lockscreen" 
     android:checked="false" 
     android:checkable="true"/> 
    <item android:id="@+id/notif" 
     android:title="Notification" 
     android:checked="false" 
     android:checkable="true"/> 

</group> 
+0

嘗試setselection方法,如element.setSelected(buttonView.isChecked()); –

+0

這不起作用,因爲我沒有使用列表視圖 –

回答

1
if(item.isChecked()) { 
    item.setChecked(false); 
} 
else { 
    item.setChecked(true); 
} 

這些線路似乎立刻取消選中該項目如果之前檢查過...
你想在這個if-else構造中做什麼?
只是評論它,讓其他if語句做所有的工作(在case s)。

+0

這似乎已經做到了,不知道爲什麼它沒有在之前,但一定錯過了什麼。 –