单击时更改TextView背景颜色

时间:2014-04-26 13:24:25

标签: android xml background textview selector

我有一个TextView,我想在点击时更改其背景。我已经尝试过这个我在本网站和其他网站上发现的很多例子,但我似乎无法让它正常工作。

我对android开发完全不熟悉,所以我很可能错过了一些明显的东西,所以请耐心等待。我也试图通过XML而不是Java来做到这一点。

Main.xml(包含在表格布局中)

<TextView
            android:id="@+id/character_option1"
            android:text="Option1" 
            android:textColor="@color/text_off"
            android:background="@drawable/selectors"
            android:clickable="true"
            android:padding="5dp" />

selectors.xml(在res / drawable中)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item 
    android:state_pressed="true"
    android:color="@drawable/option_on">
</item>
<item
    android:color="@drawable/option_off" >
</item>
</selector>

colors.xml(在res / values中)

<drawable name="option_on">#EBEBEB</drawable>
<drawable name="option_off">#CC0000</drawable>

我还在res / values中的android:color="@color/option_off"的selectors.xml中尝试了color name="option_off"。我尝试简单地将android:color="#CC0000"放入selectors.xml。它都不起作用。

我不确定它一般会从选择器接收任何信息。我将默认颜色设置为红色#CC0000只是为了检查,但背景颜色仍然是样式的默认白色。

-

这些是我尝试过的最新链接:

Selector on background color of TextView

Changing Textcolor and Background of a TextView

Change Background Color of TextView on Click

3 个答案:

答案 0 :(得分:2)

background

指定drawable时
android:background="@drawable/selectors"

selectors.xml中的项目选择器要求您设置drawable属性。

您正在设置无效的color属性。

而是将color更改为drawable

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

这是一个reference。请参阅项目标签部分。

  

android:drawable
  可绘制资源。的必需即可。引用可绘制资源。

答案 1 :(得分:0)

尝试@color/yourcolor获取并<color name="white">#FFFFFF</color>设置 colors.xml中的颜色(在res / values中)

reference

答案 2 :(得分:0)

点击更改视图背景颜色

在res / drawable / my_onclick_background.xml中:

you should resist the urge to just add ALLOW FILTERING to it. You should think about your data, your model and what you are trying to do.

然后在res / values / colors.xml中:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_pressed="true"
    android:drawable="@color/colorPrimary">
</item>
<item
    android:drawable="@color/colorAccent" >
</item>

放入视图的xml

<?xml version="1.0" encoding="utf-8"?><resources>
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>

您完成了。