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
:
- Personalizar el aspecto de la casilla de verificación starStyle
- Android listview, el cambio de casilla de verificación al azar
- Mantenimiento de los estados de la casilla de verificación en listview con CursorAdapter
- Obtener elementos seleccionados de ListView con casilla de verificación
- Cómo cambiar el color de un CheckBox?
<?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í?
- El estilo de la casilla de verificación en la vista de lista es incorrecto
- Cambiar el tema de diseño predeterminado a color personalizado?
- Seleccionar todas las casillas de verificación en RecyclerView
- Modo de elección en un RecyclerView?
- IsChecked () comportamiento exactamente opuesto en 2.3.6 y 4.2 versiones android
- Listview con Checkbox, RadioButton, Textview y el botón no funciona correctamente en android
- ¿Cómo hacer algo cuando una casilla de verificación cambia de estado?
- Una lista con selección múltiple en un cuadro de diálogo de alerta?
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.
- Enorme byte en mi aplicación después de HPROF
- Cómo rellenar la contraseña EditText con Android uiautomator?