2012-09-13 12 views
6

Mam motyw w mojej aplikacji, który definiuje domyślny wygląd tekstu i styl przycisku.Stosowanie motywu do dynamicznych przycisków radiowych w Androidzie

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

Kiedy tworzę RadioButton za pomocą

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

RadioButton jest tworzony, a tekst jest właściwie stylem ale sprawdzone znacznik znika. Czemu?

Mam przycisk Radiobutton w Buttongroupie, gdzie dynamicznie dodam przyciski. Po dodaniu przycisku za pomocą układu znacznik jest wyświetlany prawidłowo. Ale dynamicznie dodawane przyciski nie.

Odpowiedz

8

Rozwiązaniem było użycie konstruktora RadioButton (to) .

Wszystkie stylizacje ustawione za pomocą defStyle-Constructor zostały zignorowane, a znacznik usunięty. Nie jestem pewien, czy jest to błąd, czy nie jest to udokumentowane.

I rzeczywiście nie trzeba go od innych stylizacje z mojego styles.xml zastosowanie do przycisku automatycznie teraz, ale jeśli ktoś jest zainteresowany:

dodanie

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

do mojego „AppTheme” -Style i

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

do style.xml sprawia, że ​​wszyscy moi radiobuttons wyświetlić znacznik i styl tekstu (bez s etting to w konstruktorze).

+0

Działa świetnie, dzięki! –

Powiązane problemy