2012-06-14 11 views
11

Estoy intentando compilar RadioGroup en Android con un RadioButton marcado por defecto. Me pregunto si esto es posible a través de XML, en lugar de hacerlo mediante programación.propiedad RadioGroup checkedButton

no parece el siguiente fragmento de código para trabajar como estoy recibiendo un error:

error: Error: No resource found that matches the given name (at 'checkedButton' with value '@id/rdb_positive') 

El código es:

<RadioGroup 
    style="@style/FormInputField" 
    android:orientation="vertical" 
    android:checkedButton="@id/rdb_positive"> <!-- Error on this line --> 
    <RadioButton 
     android:id="@+id/rdb_positive" 
     android:text="@string/answer_positive" /> 
    <RadioButton 
     android:id="@+id/rdb_negative" 
     android:text="@string/answer_negative" /> 
</RadioGroup> 

Tiene sentido en cierto modo, como el La identificación de RadioButton se define después de establecer el atributo en RadioGroup, pero luego me pregunto por qué hay tal atributo disponible.

Respuesta

23

Uso android:checkedButton="@+id/rdb_positive", creo que se agrega + señal, pues sus obras

+7

pensé que el suspiro + se utilizó para definir una nueva identificación, me sorprende que funcione :-) Gracias. – Ruben

+3

@LalitPoptani sé que '+' se usa para identificación nueva y también error.pero su solución es asignar '+' –

+3

Cuando haya utilizado '+' en 'RadioGroup', se creará el id' rdb_positive'. Por lo tanto, no es necesario volver a utilizar '+' en 'RadioButton'. Entonces use 'android: id =" @ id/rdb_positive "' en RadioButton. – faizal

2

probar este ......

<RadioGroup 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <RadioButton 
     android:id="@+id/rdb_positive" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:checked="true" 
     android:text="answer_positive" /> 

    <RadioButton 
     android:id="@+id/rdb_negative" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="answer_negative" /> 
</RadioGroup> 
+2

Tenga en cuenta: si establece android: checked = "true" en el RadioButton predeterminado, no se desactiva cuando se verifica otro. Para implementar correctamente el botón predeterminado, debe usar el atributo "android: checkedButton" de RadioGroup. – cody

2

Usted puede deshacerse de ese error al declarar rdb_positive dentro Identificación del ids.xml y luego haciendo referencia a la identificación de los elementos RadioGroup y RadioButton.

<RadioGroup 
    style="@style/FormInputField" 
    android:orientation="vertical" 
    android:checkedButton="@id/rdb_positive"> <!-- REFERENCE TO ids.xml --> 
    <RadioButton 
     android:id="@id/rdb_positive" 
     android:text="@string/answer_positive" /> <!-- REFERENCE TO ids.xml --> 
    <RadioButton 
     android:id="@+id/rdb_negative" 
     android:text="@string/answer_negative" /> 
</RadioGroup> 

ids.xml:

<resources> 
    <item type="id" name="rdb_positive" /> 
</resources> 
+0

solo agregue un "+" a la identificación. android: checkedButton = "@ + id/rdb_positive" – agrosner

0
<RadioGroup 
    style="@style/FormInputField" 
    android:orientation="vertical"> 
    <RadioButton 
     android:id="@+id/rdb_positive" 
     android:text="@string/answer_positive" 
     android:checked="true"/> 
    <RadioButton 
     android:id="@+id/rdb_negative" 
     android:text="@string/answer_negative" /> 
</RadioGroup> 

Añadir androide: activada = "true" para el botón de radio que desea hacer por defecto

+0

Tenga en cuenta: si establece android: checked = "true" en el RadioButton predeterminado, ¡no se desactiva cuando se verifica otro! Para implementar correctamente el botón predeterminado, debe usar el atributo "android: checkedButton" de RadioGroup –

Cuestiones relacionadas