API21 setButtonTintList en CheckBox

Estoy intentando utilizar la nueva API Lollipop API setButtonTintList() para aplicar los colores de forma programática a android CheckBox es.

He fijado el ColorStateList siguiente en checkbox_color.xml :

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="@color/red" /> <item android:state_checked="false" android:color="@color/green" /> </selector> 

En un Button específico haga clic en mi aplicación que inflar un nuevo diseño que contiene un CheckBox en mi diseño principal ( mLayoutTotalItemRow ) a través de:

 View itemRow = getActivity().getLayoutInflater().inflate(R.layout.row_add_purchase, mLayoutTotalItemRow, false); 

Después de la inflación, quiero aplicar checkbox_color.xml a la nueva CheckBox vía (la razón por la que quiero hacer esto en código en lugar de xml es que quiero establecer diferentes colores dependiendo de algunas variables):

 mCheckBoxEnabled.setButtonTintList(mContext.getResources().getColorStateList(R.color.checkbox_color)); 

Ahora que sucede algo extraño, cuando el CheckBox se crea por primera vez, es rojo (por state_checked="true" tanto state_checked="true" . Tan pronto como lo desmarco, es verde ( state_chacked="false" ). Pero cuando vuelva a comprobarlo ahora, Cambia a marcado pero permanece verde! Por lo tanto, de alguna manera el estado de vista interna no está cambiando a "marcado".

Mi casilla de verificación xml:

  <CheckBox android:id="@+id/cb_item_enabled" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/key_line_1_minus_checkbox_margin" android:layout_marginEnd="@dimen/key_line_2_minus_key_line_1_minus_checkbox" android:layout_gravity="center_vertical" android:checked="true"/> 

¿Alguna idea de lo que estoy haciendo mal aquí?

He informado del error al proyecto de Android. Número 157166
Corrección para la próxima versión 5.1

Esto se arregla en 5.1, que aún no ha sido lanzado.

Estado: FutureRelease

EDIT 10.03.2015

Lanzado en 5.1.

  • Cómo configurar el color del borde de la casilla de verificación
  • Estado del elemento de la casilla de verificación en el menú android
  • CheckBox indica en los hijos de ExpandableListView
  • Las casillas de verificación MultiSelectListPreference no están marcadas cuando no se ven inicialmente en la lista (API 23)
  • No se puede marcar / desmarcar CheckedTextView dentro de getView
  • Desactivar la casilla de verificación después de marcada, android
  • Corregir la forma de eliminar la casilla de la casilla de verificación completamente en API 16 e inferior
  • Preferencia y comprobación de la casilla de verificación si está activada o desactivada
  • Agregar en un elemento de menú en ActionBar
  • Artículo de menú verificable de Android
  • Definición de la casilla de verificación personalizada en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.