Anulación de atributos de estilo referenciados

Después de leer References To Theme Attributes , bash hacer referencia al valor de un atributo en el tema personalizado que he establecido.

Estoy aplicando un estilo definido por el usuario a un CheckedTextView

   

El estilo definido por el usuario se define como:

  ?android:listChoiceIndicatorMultiple  

Mi tema que creé se define como:

  @drawable/btn_check_holo_light  

Sin embargo, el estilo checkMark que se muestra es dibujable del tema predeterminado del dispositivo y no dibujable por el usuario.

La única forma en que puedo hacer que mi dibujo se muestre es con:

  @drawable/btn_check_holo_light  

Pero eso frustra todo el propósito de anular este atributo, especialmente porque me gustaría anular este atributo en múltiples temas.

Estoy configurando el tema en el método onCreate() de mi Activity esta manera:

 public void onCreate(Bundle savedInstanceState) { this.setTheme(R.style.Theme_Yellowgreen); super.onCreate(savedInstanceState); // ... } 

También traté de configurar el tema en el archivo AndroidManifest.xml como:

  

Pero eso no funcionó. ¿Qué podría estar yendo mal?

Actualizar

Acabo de crear un pequeño proyecto de muestra y parece que el código que publiqué arriba está funcionando. Así que debo tener algunos otros estilos que están anulando esta propiedad o tal vez tiene que ver con mis archivos xml de diseño.

En mi gran proyecto, tengo dos Fragments dentro de una Activity . Ambos Fragments tienen Listviews respaldadas por Adapters . En el Fragment A el método getView() del Adapter es el siguiente:

 public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate(R.layout.contact_entry, null); } //... return convertView; } 

En el Fragment B el método getView() del Adapter es el siguiente:

 public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate(R.layout.list_item, parent, false); } //... return convertView; } 

Los diseños se definen de la siguiente manera:

list_item.xml

       

list_item_header.xml

   

contact_entry.xml

       

Por alguna razón, en el Fragment B el atributo de marca de verificación temática no se está representando correctamente, mientras que en el Fragment A , la marca de verificación usa el Tema de Amarilloverde actual y tiene el estilo correcto. ¿Por qué estaría pasando esto?

Creo que necesitas esa línea en tu tema

 @style/ListViewCheckedTextViewRowStyle 

por lo que se vería así:

  

ACTUALIZAR

Después de la actualización de la pregunta y algunos comentarios del formulario de información adicional, encontramos que el problema estaba en Context . Es el mismo error que cometí en esa pregunta: el selector de color de Android no funciona con atributos personalizados

A un fragmento se le pasó Activity y a la otra Application . No soy un experto, pero incluso ambas clases se están extendiendo. Context solo, la Activity extiende ContextThemeWrapper , que tiene información sobre estilos. Puede ser útil leer ese artículo para su comprensión futura Contexto: http://www.doubleencore.com/2013/06/context/