2012-09-13 16 views
6

Tengo un tema en mi aplicación que define la apariencia de texto predeterminada y el estilo de botón.Aplicación de un tema a botones de radio dinámicos en Android

<style name="AppTheme" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen"> 
    <item name="android:textAppearance">@style/TextAppearance.Medium</item> 
    <item name="android:textAppearanceLarge">@style/TextAppearance.Large</item> 
    <item name="android:textAppearanceMedium">@style/TextAppearance.Small</item> 
    <item name="android:textAppearanceSmall">@style/TextAppearance.Medium</item> 
    <item name="android:textColorPrimary">#000000</item> 
    <item name="android:textColorSecondary">#000000</item> 
    <item name="android:textColorTertiary">#000000</item> 
    <item name="android:buttonStyle">@style/Button</item> 
</style> 

<style name="TextAppearance" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">?android:attr/textColorPrimary</item> 
    <item name="android:textColorHint">?android:attr/textColorHint</item> 
</style> 

<style name="TextAppearance.Large"> 
    <item name="android:textColor">?android:attr/textColorPrimary</item> 
    <item name="android:textSize">32dp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

<style name="TextAppearance.Medium"> 
    <item name="android:textColor">?android:attr/textColorSecondary</item> 
    <item name="android:textSize">22dp</item> 
</style> 

<style name="TextAppearance.Small"> 
    <item name="android:textColor">?android:attr/textColorTertiary</item> 
    <item name="android:textSize">18dp</item> 
</style> 

<style name="Button" parent="@android:style/Widget.Button"> 
    <item name="android:textColor">?android:attr/textColorSecondary</item> 
    <item name="android:textColorHint">?android:attr/textColorHint</item> 
    <item name="android:textStyle">normal</item> 
    <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> 
</style> 

Cuando creo un componente RadioButton con

RadioButton radioButton = new RadioButton(this, null, R.style.AppTheme); 

el botón de radio se crea y el texto tiene un estilo correctamente, pero el marcador comprobado desaparece. ¿Por qué?

Tengo Radiobutton en un Buttongroup, donde agrego dinámicamente los botones. Cuando agrego un botón a través del diseño, el marcador se muestra correctamente. Pero los botones agregados dinámicamente no.

Respuesta

8

La solución fue utilizar el RadioButton (este) constructor.

Todos los estilos configurados con defStyle-Constructor se ignoraron y el marcador se eliminó. No estoy seguro de si esto es un error o no está documentado.

que en realidad no lo necesitan ya que los otros estilos de de mi styles.xml aplican al botón de forma automática, pero si alguien está interesado:

añadiendo

<item name="android:radioButtonStyle">@style/MyRadioButton</item> 

a mi "AppTheme" al estilo y

<style name="MyRadioButton" parent="@android:style/Widget.CompoundButton.RadioButton"> 
    <item name="android:textSize">5dp</item> 
</style> 

a la style.xml hace que todos mis radiobuttons visualizar el marcador y el estilo del texto (s sin etting it en el constructor).

+0

Funciona muy bien, gracias! –

Cuestiones relacionadas