根据焦点改变android编辑框中的文字颜色

时间:2011-06-06 05:06:01

标签: android android-layout

我使用下面的xml文件来更改编辑框的颜色。但我想知道如何根据焦点更改编辑框中的文本颜色。如果编辑框是聚焦的,我想将文本颜色更改为黑色,当它没有聚焦时,我喜欢将颜色更改为白色。

如何在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>

2 个答案:

答案 0 :(得分: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属性。

答案 1 :(得分:0)

我认为您正在寻找State List