Android 安卓:状态_按下不工作,按下按钮不改变颜色

Android 安卓:状态_按下不工作,按下按钮不改变颜色,android,button,colors,drawable,Android,Button,Colors,Drawable,我在res/drawable中有以下XML代码,我将按钮背景设置为这个drawable。然而,当我按下按钮时,它并没有改变颜色。谢谢你的帮助 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@color/pink"/>

我在res/drawable中有以下XML代码,我将按钮背景设置为这个drawable。然而,当我按下按钮时,它并没有改变颜色。谢谢你的帮助

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/pink"/> <!-- pressed state -->
<item android:state_selected="false" android:drawable="@color/blue"/> <!-- default state -->

按钮:

        <Button
        android:id="@+id/button12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:layout_weight="1"
        android:background="@drawable/button_bg"
        android:text="REGISTER"
        android:textColor="@color/white"
        android:textSize="20sp" />

颜色XML:

<color name="blue">#49B8C7</color>
<color name="pink">#FF8EB9</color>
#49B8C7
#FF8EB9

您的问题可能是由android:drawable=“@color/pink”引起的。似乎不工作的颜色绘制。 在这种情况下,请像这样

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"> <!-- pressed state -->
        <shape android:shape="rectangle"><solid android:color="@color/pink"/></shape>
    </item>
    <item> <!-- default state -->
        <shape android:shape="rectangle"><solid android:color="@color/blue"/></shape>
    </item>
</selector>

为您提供的解决方案

XML文件保存在
res/color/button\u text.XML:

<?xml version="1.0" encoding="utf-8"?>
<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 -->
</selector>

此布局XML将颜色列表应用于视图:

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    android:textColor="@color/button_text" />


您好,您确实在xml中选择了android:state,而不是按了android:state。请替换它。尝试使用
@Daniel.Wang state\u pressed也不起作用。@rahat,它也不起作用。尝试在按钮标签中设置android:clickable=“true”。它不起作用按钮点击事件发生在按下按钮时?按钮没有事件。选择器xml名称为buton\u bg.xml请检查按钮是否启用,如果禁用,按下时背景色不变。并尝试在按钮标签中设置android:clickable=“true”。我可以在不使用shape的情况下获得解决方案吗?shape有什么问题?shape没有问题,但为什么它在没有shape的情况下无法工作?检查更新的答案。我认为您添加了不必要的代码。我需要它在没有侦听器和java代码的情况下工作。它应该适用于简单的xml文件。