2011-07-14 8 views
5

Mi código XML es:menú Android: Dos grupos de un solo comprobables en el mismo menú

<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> 

El problema que estoy teniendo es que cuando cambie el estado de group_1_box_1 de verdad, no sólo establece group_1_box_2 a falso, también establece los cuadros group_2 en falso.

Editar: Aquí está mi código

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

Asegúrese de añadir su código. Sin él, realmente no hay manera de ayudar. Por ejemplo, ¿qué quiere decir con "cuando cambio el estado a verdadero?" – Phil

+0

¿Alguna vez encontró una solución? –

Respuesta

3

Sólo tiene que añadir identificadores únicos para cada uno de los group elementos del archivo 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

No funcionó, el mismo comportamiento. Lo hace como un divisor, pero eso es todo. –

0

Uso:

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