2011-08-17 128 views
9

我的toggle-Button對於每個狀態(紅色和白色)都有不同的彩色背景。 現在我需要在激活時更改切換按鈕文本的顏色(紅色/白色)。 用xml我只是無法讓它工作,也許任何人有一個想法我做錯了什麼?如何更改狀態更改時Android ToogleButton的文本顏色?

我在佈局XML按鈕:

XML的按鈕狀態:

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

和XML的顏色:

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

回答

-1

你必須使用的東西,下面的例子,移動要包含在項目標籤中的顏色屬性。

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

感謝您的幫助邁克·d,我錯過了我可以通過 得到選中/檢查按鈕狀態「機器人:state_checked =」真「」和 機器人:state_checked =「false」;-) – gue

15

發現: 現在,我使用android:state_checked="true"android:state_checked="false"

顏色的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

注意:xml文件必須位於'color'res文件夾中 –