无法使按钮仅在单击时更改颜色(Android)

无法使按钮仅在单击时更改颜色(Android),android,android-fragments,android-button,Android,Android Fragments,Android Button,我想要一个按钮,改变颜色时,按下,然后改变回原来的颜色时,它的释放。目前,我有一个按钮,当你按下时,它会把你带到一个片段。我试着简单地使用 button.setBackgroundColor(Color.BLUE); 在按钮的onClickListener中,但意识到当它将我带到片段并返回到活动时,按钮仍然是相同的颜色,并且没有改变回去。因此,我的行动计划是在按下按钮时改变其颜色,启动片段,然后将按钮的颜色设置为原来的颜色,这样,如果我按回按钮,按钮看起来就像正常的一样(未锁定) 然而,我似乎

我想要一个按钮,改变颜色时,按下,然后改变回原来的颜色时,它的释放。目前,我有一个按钮,当你按下时,它会把你带到一个片段。我试着简单地使用

button.setBackgroundColor(Color.BLUE);
在按钮的onClickListener中,但意识到当它将我带到片段并返回到活动时,按钮仍然是相同的颜色,并且没有改变回去。因此,我的行动计划是在按下按钮时改变其颜色,启动片段,然后将按钮的颜色设置为原来的颜色,这样,如果我按回按钮,按钮看起来就像正常的一样(未锁定)

然而,我似乎无法在网上找到一个示例,显示如何将按钮的颜色设置为int(因此我可以使用setBackgroundColor(int))。有什么想法吗


非常感谢您的帮助

为此,您应该使用选择器-

创建selector.xml(在res/drawable文件夹中):


`

并将选择器设置为backround to按钮:

<Button
 android:id="@+id/button1"
 android:background="@drawable/selector"
 android:layout_width="200dp"
 android:layout_height="126dp"
 android:text="Hello" />

您不需要更改背景颜色,只需使用选择器。在drawable文件夹中创建一个xml文件(给它一个名称,即颜色更改)。选择器有几个状态。正如在下面的代码中一样,第一部分(默认值)显示未按下按钮并对焦,这将是颜色。第二部分显示按钮处于焦点且未按下时,第三部分显示按钮处于焦点且同时按下时。 当你按下一个按钮时,它会变为指定的颜色。当它被释放时,它会返回到默认的颜色状态

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >


 <!-- default -->
<item android:state_pressed="false" android:state_focused="false">
    <shape >
        <solid  android:color="#CD853F" />
     </shape>
</item>

<!-- button focused -->
<item android:state_pressed="false" android:state_focused="true">
    <shape >
    <solid
            android:color="#00ff00" />
     </shape>
</item>
<!-- button pressed -->
<item android:state_pressed="true" android:state_focused="false">
    <shape >
        <solid
            android:color="#00ff00" />
    </shape>
</item> 

按钮的XML是

<Button
android:id="@+id/press_button"
android:background="@drawable/selector"
android:layout_width="fiil_parent"
android:layout_height="42dp"
android:text="Press me" />

<Button
android:id="@+id/press_button"
android:background="@drawable/selector"
android:layout_width="fiil_parent"
android:layout_height="42dp"
android:text="Press me" />