【问题标题】:Changing TextView background color on click单击时更改 TextView 背景颜色
【发布时间】:2014-06-12 06:05:45
【问题描述】:

我有一个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>

我还尝试了 selectors.xml 中的 android:color="@color/option_off" 和 res/values 中的 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

【问题讨论】:

    标签: android xml background textview selector


    【解决方案1】:

    为 background 指定可绘制对象时

    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
    可绘制资源。 必填。引用可绘制资源。

    【讨论】:

    • 感谢您的回复。我已经进行了编辑,但似乎没有任何改变。即使是“关闭状态”颜色也不正确。将其包含在&lt;TableLayout&gt;/&lt;TableRow&gt; 中会有什么问题吗?
    • @V_Iker 它应该在那里工作正常。您确定在进行更改后重新构建了项目并且没有在旧版本的应用程序上进行测试吗?对我来说没问题。
    • 好的。所以我把它推到了 Git 上,它确实像你说的那样工作。我在旅途中使用 Aide,甚至在其中运行它也无法正常工作。因此,我似乎浪费了比需要更多的时间。正如他们所说,生活和学习。再次感谢。
    • @V_Iker 啊,我明白了,很高兴你能成功。没问题!
    【解决方案2】:

    尝试@color/yourcolor 获取和&lt;color name="white"&gt;#FFFFFF&lt;/color&gt; 在colors.xml(在res/values 中)中设置颜色

    reference

    【讨论】:

    • 感谢您抽出宝贵时间回复。似乎是我的错误,没有通过 Eclipse 进行检查。
    【解决方案3】:

    点击后更改查看背景颜色

    在 res/drawable/my_onclick_background.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>
    

    然后在 res/values/colors.xml:

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

    放入你的视图的xml

    android:background="@drawable/my_onclick_background"
    

    你就完成了。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2014-10-09
      • 2017-08-02
      相关资源
      最近更新 更多