2011-07-14 9 views
5

Mój kod XML:Android menu: Dwie grupy pojedynczej Rejestrowalne w tym samym menu

<group android:checkableBehavior="single"> 
    <item android:id="@+id/group_1_box_1"/> 
    <item android:id="@+id/group_1_box_2"/> 
</group> 

<group android:checkableBehavior="single"> 
    <item android:id="@+id/group_2_box_1"/> 
    <item android:id="@+id/group_2_box_2"/> 
</group> 

Problem mam jest to, że przy zmianie stanu group_1_box_1 true, to wyznacza nie tylko group_1_box_2 do false, ustawia także pola group_2 na false.

Edycja: Oto mój kod

public boolean onOptionsItemSelected(MenuItem item) { 
switch (item.getItemId()) { 
    case R.id.group_1_box_1: 
     item.setChecked(true); 
     return true; 
    case R.id.group_1_box_2: 
     item.setChecked(true); 
     return true; 
    case R.id.group_2_box_1: 
     item.setChecked(true); 
     return true; 
    case R.id.group_2_box_2: 
     item.setChecked(true); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
} 
+0

Pamiętaj, aby dodać swój kod. Bez niego naprawdę nie ma sposobu, aby ci pomóc. Na przykład, co masz na myśli mówiąc "kiedy zmieniam stan na prawdziwy?" – Phil

+0

Czy kiedykolwiek znalazłeś rozwiązanie? –

Odpowiedz

3

Wystarczy dodać unikalne identyfikatory dla każdego z group pozycji w pliku XML.

<group 
    android:id="@+id/menuGroup_1"   <!-- Here --> 
    android:checkableBehavior="single"> 
    <item android:id="@+id/group_1_box_1"/> 
    <item android:id="@+id/group_1_box_2"/> 
</group> 

<group 
    android:id="@+id/menuGroup_2"   <!-- And here --> 
    android:checkableBehavior="single"> 
    <item android:id="@+id/group_2_box_1"/> 
    <item android:id="@+id/group_2_box_2"/> 
</group> 
+0

Nie działa, to samo zachowanie. Czy jako dzielnik, ale to wszystko. –

0

Zastosowanie:

compile 'com.android.support:appcompat-v7:23.1.0' 
compile 'com.android.support:design:23.1.0'