2012-03-24 7 views
7

Estoy tratando de obtener una posición sensata de mis botones de radio que forman parte de un RadioGroup. Estaba teniendo problemas ya que mi RadioGroup estaba sentado sobre el resto del diseño de mi diseño, luego uso los márgenes para presionar los botones, el problema aquí es que esto funciona solo en uno o dos diseños de dispositivos. Pensé que había salido dorado cuando descubrí que podía definir mi RadioGroup y luego coloqué un RelativeLayout debajo que, entre otras cosas, contenía uno de los RadioButtons, luego lo repitió dos veces más. esto me da el diseño que deseo. El problema es que cuando ejecuto el código, los RadioButtons actúan de enlace botones independientes :(Android: RadioButton dentro de Diseño anidado en RadioGroup se cae del grupo

Así que dos preguntas,

  • puedo vincular estos botones de nuevo al grupo?

  • ¿Existe una buena manera de poder definir el diseño de la RadioGroup Radiobuttons independientemente del grupo.

Pienso en una alternativa puede ser RadioButtons independientes y use el código para habilitarlos/deshabilitarlos, pero eso de alguna manera vence la utilidad de RadioGroup.

gracias.

Aquí está mi diseño XML si tiene curiosidad.

<ScrollView android:id="@+id/scrollview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 

     android:layout_below="@id/HDDResultsBox" 
     > 

    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:windowSoftInputMode="stateHidden" 
    > 


    <RadioGroup android:id="@+id/calcBy" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:layout_below="@id/HDDResultsBox" 

     > 

    <RelativeLayout android:id="@+id/intervalBox" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/backgroundbox" 
     android:layout_margin="5dp" 
     android:padding="5dp" 


     > 
      <TextView android:id="@+id/intervalHeader" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Interval" 
      android:gravity="left" 
      android:textColor="#ffffff" 
      android:textStyle="bold" 
      android:layout_marginLeft="5dp" 
      />  

     <TextView android:id="@+id/intervalHelpText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Interval help text" 
      android:gravity="left" 
      android:textColor="#ffffff" 
      android:textSize="8dp" 
      android:layout_toRightOf="@id/intervalHeader" 
      android:layout_marginLeft="10dp" 
      /> 

      <LinearLayout android:id="@+id/interval2ndBox" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_below="@id/intervalHeader" 
      android:layout_marginLeft="10dp" 
      > 
       <RadioButton android:id="@+id/byInterval" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="2dp" 
        /> 

       <EditText android:id="@+id/intervalValue" 
        android:layout_width="75dp" 
        android:layout_height="40dp" 
        android:text="50" 
        android:textSize="14sp" 
        android:gravity="center" 
        android:inputType="number" 
        android:layout_marginLeft="20dp" 
        />  

       <Spinner android:id="@+id/intervalType" 
        android:layout_width="match_parent" 
        android:layout_height="42dp" 
        android:drawSelectorOnTop="false" 
        android:layout_marginTop="1dp" 
        android:layout_marginLeft="10dp" 
        android:layout_weight="10" 
       android:layout_marginRight="2dp" 
        /> 

       <SeekBar android:id="@+id/intervalSeek" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:max="100" 
       android:progress="50" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="5dp" 
       android:layout_marginTop="8dp" 
       android:layout_weight="7" 
      /> 
      </LinearLayout> 

     </RelativeLayout> 


<RelativeLayout android:id="@+id/recordBox" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/backgroundbox" 
     android:layout_margin="5dp" 
     android:padding="5dp" 


     > 
      <TextView android:id="@+id/recordHeader" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Record Duration" 
      android:gravity="left" 
      android:textColor="#ffffff" 
      android:textStyle="bold" 
      android:layout_marginLeft="5dp" 
      />  

     <TextView android:id="@+id/recordHelpText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Record help text" 
      android:gravity="left" 
      android:textColor="#ffffff" 
      android:textSize="8dp" 
      android:layout_toRightOf="@id/recordHeader" 
      android:layout_marginLeft="10dp" 
      /> 

      <LinearLayout android:id="@+id/record2ndBox" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_below="@id/recordHeader" 
      android:layout_marginLeft="10dp" 
      > 
       <RadioButton android:id="@+id/byrecord" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="2dp" 
        /> 

       <EditText android:id="@+id/recordValue" 
        android:layout_width="75dp" 
        android:layout_height="40dp" 
        android:text="50" 
        android:textSize="14sp" 
        android:gravity="center" 
        android:inputType="number" 
        android:layout_marginLeft="20dp" 
        />  

       <Spinner android:id="@+id/recordType" 
        android:layout_width="match_parent" 
        android:layout_height="42dp" 
        android:drawSelectorOnTop="false" 
        android:layout_marginTop="1dp" 
        android:layout_marginLeft="10dp" 
        android:layout_weight="10" 
       android:layout_marginRight="2dp" 
        /> 

       <SeekBar android:id="@+id/recordSeek" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:max="100" 
       android:progress="50" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="5dp" 
       android:layout_marginTop="8dp" 
       android:layout_weight="7" 
      /> 
      </LinearLayout> 

     </RelativeLayout> 

<RelativeLayout android:id="@+id/playBackBox" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/backgroundbox" 
     android:layout_margin="5dp" 
     android:padding="5dp" 


     > 
      <TextView android:id="@+id/playBackHeader" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Video Length" 
      android:gravity="left" 
      android:textColor="#ffffff" 
      android:textStyle="bold" 
      android:layout_marginLeft="5dp" 
      />  

     <TextView android:id="@+id/playBackHelpText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="playBack help text" 
      android:gravity="left" 
      android:textColor="#ffffff" 
      android:textSize="8dp" 
      android:layout_toRightOf="@id/playBackHeader" 
      android:layout_marginLeft="10dp" 
      /> 

      <LinearLayout android:id="@+id/playBack2ndBox" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_below="@id/playBackHeader" 
      android:layout_marginLeft="10dp" 
      > 
       <RadioButton android:id="@+id/byplayBack" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="2dp" 
        /> 

       <EditText android:id="@+id/playBackValue" 
        android:layout_width="75dp" 
        android:layout_height="40dp" 
        android:text="50" 
        android:textSize="14sp" 
        android:gravity="center" 
        android:inputType="number" 
        android:layout_marginLeft="20dp" 
        />  

       <Spinner android:id="@+id/playBackType" 
        android:layout_width="match_parent" 
        android:layout_height="42dp" 
        android:drawSelectorOnTop="false" 
        android:layout_marginTop="1dp" 
        android:layout_marginLeft="10dp" 
        android:layout_weight="10" 
       android:layout_marginRight="2dp" 
        /> 

       <SeekBar android:id="@+id/playBackSeek" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:max="100" 
       android:progress="50" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="5dp" 
       android:layout_marginTop="8dp" 
       android:layout_weight="7" 
      /> 
      </LinearLayout> 

     </RelativeLayout>  


    </RadioGroup>   
</RelativeLayout> 
     </ScrollView> 
+0

quite el grupo de radio y maneje los botones usted mismo si no funciona con un grupo de radio. Al igual que en el botón 1, haga clic en: establecer todos los demás en inactivo. – zapl

+0

Me decepciona que no pueda controlar mejor un grupo, pero ahora he ajustado mi código para usar los botones manualmente. aclamaciones. – Purplemonkey

Respuesta

7

Después de mirar alrededor para una solución que parece la única manera de hacer esto es utilizar los botones de radio individuales y luego programmically controlar allí en los estados de encendido/apagado.

+1

Pensarías que Google habría encontrado una solución para esto. Me encontré con esto cuando construí un botón "Otro". Poner un TextEdit en seguir el botón ha demostrado ser muy difícil ... –

Cuestiones relacionadas