2011-06-06 384 views
3

我正在使用下面的xml文件來更改編輯框的顏色。但我想知道如何根據焦點更改編輯框中的文本顏色。如果編輯框被聚焦,我喜歡將文本顏色更改爲黑色,而當它未被聚焦時,我喜歡將顏色更改爲白色。根據焦點更改android編輯框中的文本顏色

我該如何在xml文件中實現這個功能?任何幫助對於我學習Android可繪製資源都會非常有用。

<?xml version="1.0" encoding="UTF-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="true"> 
    <shape> 
     <gradient 
      android:endColor="#FFFFFF" 
      android:startColor="#FFFFFF" 
      android:angle="90" /> 
     <stroke 
      android:width="3dp" 
      android:color="#0f0f0f" /> 
     <corners 
      android:radius="10dp" /> 
    </shape> 
</item> 

<item android:state_focused="false">   
    <shape> 
     <gradient 
      android:endColor="#000000" 
      android:startColor="#000000" 
      android:angle="90" /> 
     <stroke 
      android:width="3dp" 
      android:color="#151515" /> 
     <corners 
      android:radius="10dp" /> 
    </shape> 
</item> 

+0

對不起xml文件沒有被正確複製 – Ron 2011-06-06 05:06:48

回答

2

您應該使用ColorStateList而不是狀態列表。

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:color="#ffff0000" /> <!-- pressed --> 
<item android:state_focused="true" android:color="#ff0000ff" /> <!-- focused --> 
<item android:color="#ff000000" /> <!-- default --> 

然後就分配此狀態列表textColor屬性。

+0

感謝:D !!我能夠改變文字顏色。將狀態列表分配給textColor屬性後。 – Ron 2011-06-06 08:51:37

0

我認爲你正在尋找一個State List

+1

嗨加里,是的,我正在尋找用於更改編輯文本顏色的狀態列表。我嘗試使用項目標籤內的android:textColor,但我沒有得到我期望的結果。 – Ron 2011-06-06 07:05:14

相關問題