将主题应用于Android中的动态单选按钮

将主题应用于Android中的动态单选按钮,android,styles,radio-button,Android,Styles,Radio Button,我的应用程序中有一个主题,它定义了默认的文本外观和按钮样式 <style name="AppTheme" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen"> <item name="android:textAppearance">@style/TextAppearance.Medium</item> <item name="android:textAppearanceLar

我的应用程序中有一个主题,它定义了默认的文本外观和按钮样式

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

将创建单选按钮并正确设置文本样式,但选中标记将消失。为什么?


我在Buttongroup中有一个Radiobutton,我在其中动态添加按钮。当我通过布局添加按钮时,标记会正确显示。但是动态添加的按钮没有。解决方案是使用 单选按钮(本) 构造器

忽略使用defStyle构造函数设置的所有样式,并删除标记。我不确定这是一个bug还是没有文档记录

实际上我不需要它,因为my styles.xml中的其他样式现在会自动应用于按钮,但是如果有人感兴趣:

添加

<item name="android:radioButtonStyle">@style/MyRadioButton</item>
@style/MyRadioButton
到我的“AppTheme”-样式和

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

5dp

到style.xml使我的所有单选按钮显示标记并设置文本样式(,而不在构造函数中设置它)。

至于我,仅使用充气器就成功解决了此问题:

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    ...
    RadioButton rb = (RadioButton) inflater.inflate(R.layout.radio_butt, null);

希望它能帮助别人

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    ...
    RadioButton rb = (RadioButton) inflater.inflate(R.layout.radio_butt, null);