2011-08-17 16 views
9

mi botón para alternar tiene fondos de diferentes colores para cada estado (rojo y blanco). Ahora necesito cambiar el color del texto de togglebutton (rojo/blanco) cuando está activado. Con xml simplemente no puedo hacer que funcione, tal vez alguien tiene una idea de lo que estoy haciendo mal?¿Cómo cambiar el color del texto de un Android ToogleButton en el cambio de estado?

Mi botón en el xml Diseño:

XML para el botón de los Estados-:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_checked="true" android:drawable="@drawable/sort_button_red_right_43" /> 
<item android:drawable="@drawable/sort_button_white_right_43" /> 
</selector> 

y XML para el color:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- pressed --> 
<item android:state_pressed="true" android:color="#4f5459" /> 

<!-- focused --> 
<item android:state_focused="true" android:color="#4f5459" /> 

<!-- default --> 
<item android:color="#ffffff" /> 

<!-- trying these out, but none works --> 
<item android:state_checked="true" android:color="#ff0000" /> 
<item android:state_enabled="true" android:color="#ff00dd" /> 
<item android:state_selected="true" android:color="#ff00dd" /> 
<item android:state_active="true" android:color="#ff00dd" /> 

</selector> 

Respuesta

-1

Usted tiene el uso algo el ejemplo siguiente , mueve los atributos de color que se incluirán en las etiquetas de los elementos.

<?xml version="1.0" encoding="UTF-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_pressed="true" > 
    <shape> 
     <corners 
      android:topLeftRadius="3dp" 
      android:bottomLeftRadius="0.1dp" 
      android:topRightRadius="0.1dp" 
      android:bottomRightRadius="3dp" /> 
     <gradient 
      android:startColor="#d0785e" 
      android:endColor="#000000" 
      android:angle="270" /> 
    </shape> 
</item> 

<item android:state_focused="true" > 
    <shape> 
     <corners 
      android:topLeftRadius="3dp" 
      android:bottomLeftRadius="0.1dp" 
      android:topRightRadius="0.1dp" 
      android:bottomRightRadius="3dp" /> 
     <gradient 
      android:endColor="#ffffff" 
      android:startColor="#b9b9b9" 
      android:angle="270" /> 
    </shape> 
</item> 

<item android:state_enabled="false"> 
    <shape> 
     <corners 
      android:topLeftRadius="3dp" 
      android:bottomLeftRadius="0.1dp" 
      android:topRightRadius="0.1dp" 
      android:bottomRightRadius="3dp" /> 
     <gradient 
      android:startColor="#f0aa9f" 
      android:endColor="#e21f00" 
      android:angle="270" /> 
    </shape> 
</item> 

<item>   
    <shape> 
     <corners 
      android:topLeftRadius="3dp" 
      android:bottomLeftRadius="0.1dp" 
      android:topRightRadius="0.1dp" 
      android:bottomRightRadius="3dp" /> 
     <gradient 
      android:startColor="#fe9c69" 
      android:endColor="#fc5700" 
      android:angle="270" /> 
    </shape> 
</item> 


</selector> 
+0

Gracias por su ayuda Mike D, echaba de menos que puedo conseguir el estado del botón sin marcar/verificado mediante el uso de "android: state_checked =" true "" y androide: state_checked = "false" ;-) – gue

15

lo encontró: ahora estoy usando android:state_checked="true" y android:state_checked="false".

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="#ffffff" /> 
    <item android:state_checked="false" android:color="#000000" /> 
</selector> 
+1

nota: el archivo xml debe estar en la carpeta res 'color' –

Cuestiones relacionadas