J'ai aussi rencontré le problème et j'ai trouvé le moyen de définir le style par programmation. Peut-être que vous en avez tous besoin, donc je mets à jour là-bas.
Le troisième paramètre du constructeur View accepte un type d'attr dans votre thème comme code source ci-dessous:
public TextView(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.textViewStyle);
}
Vous devez donc passer un type de R.attr. ** plutôt que R.style. **
Dans mes codes, j'ai fait les étapes suivantes:
Tout d'abord, personnalisez un attr personnalisé à utiliser par les thèmes dans attr.xml.
<attr name="radio_button_style" format="reference" />
Deuxièmement, spécifiez votre style dans votre thème utilisé dans style.xml.
<style name="AppTheme" parent="android:Theme.Translucent">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="radio_button_style">@style/radioButtonStyle</item>
</style>
<style name="radioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">64dp</item>
<item name="android:background">#000</item>
<item name="android:button">@null</item>
<item name="android:gravity">center</item>
<item name="android:saveEnabled">false</item>
<item name="android:textColor">@drawable/option_text_color</item>
<item name="android:textSize">9sp</item>
</style>
À la fin, utilisez-le!
RadioButton radioButton = new RadioButton(mContext, null, R.attr.radio_button_style);
la vue créée par programmation utilisera le style spécifié dans votre thème.
Vous pouvez essayer et espérer que cela fonctionnera parfaitement pour vous.