Me encontré con el problema también, y encontré la manera de establecer el estilo de forma programática. Quizás todos lo necesiten, así que actualizo allí.
El tercer parámetro de vista constructor acepta un tipo de attr en su tema como el código fuente a continuación:.
public TextView(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.textViewStyle);
}
por lo que debe pasar un tipo de R.attr ** en lugar de R.style. **
en mis códigos, lo hice siguiendo los pasos:
en primer lugar, personalizar un attr personalizado para ser utilizado por temas en attr.xml.
<attr name="radio_button_style" format="reference" />
En segundo lugar, especifique su estilo en el tema usado en 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>
Al final, úselo!
RadioButton radioButton = new RadioButton(mContext, null, R.attr.radio_button_style);
la vista creada programáticamente usará el estilo especificado en su tema.
Puede probarlo, y espero que le sirva perfectamente.
Donde esto gana La respuesta de Dandre Allison es que no requiere API v11. –
¡La única respuesta que realmente funcionó para mí, gracias! – Justin
Podría haber funcionado, pero esto no tiene sentido. ¿Cómo se puede establecer con el archivo xml? si no ** programáticamente **. Hay razones para no usar archivos xml, uno de ellos es que estoy acostumbrado a escribir código para construir la interfaz de usuario, así que no quiero aprender una nueva forma de hacerlo, ya que mi memoria es limitada y quiero mantener algo de espacio para otras cosas. –