2011-08-17 16 views
9

Il mio pulsante di attivazione ha diversi sfondi colorati per ciascuno stato (rosso e bianco). Ora ho bisogno di cambiare il colore del pulsante toggle-text (rosso/bianco) quando attivato. Con xml non riesco a farlo funzionare, forse qualcuno ha un'idea di quello che sto facendo male?Come modificare il colore del testo di un Android ToogleButton sul cambio di stato?

mio pulsante nel xml Layout:

XML per button-stati:

<?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> 

e XML per il colore:

<?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> 

risposta

-1

Potrete utilizzare qualcosa nell'esempio qui sotto , sposta gli attributi del colore da contenere nei tag dell'articolo.

<?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

Grazie per il vostro aiuto Mike D, mi mancava che posso ottenere il/controllato stato del pulsante non selezionato utilizzando "android: state_checked =" true "" e Android: state_checked = "false" ;-) – gue

15

trovato: ora sto usando android:state_checked="true" e android:state_checked="false".

colore-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: il file xml deve essere nella cartella di ricerca "color" –

Problemi correlati