Android 使用选择器更改按钮的颜色并保持此颜色

Android 使用选择器更改按钮的颜色并保持此颜色,android,xml,drawable,Android,Xml,Drawable,我想做的是改变按钮的颜色,如果是由用户按下。我需要红色/绿色。“开始”按钮为红色,如果按“更改绿色”,如果再次按,则返回红色。如果再按一次,绿色 我正试图找到类似的东西,但什么也找不到。 是否可以使用可拖动选择器进行此操作 这是我正在努力的,在完成印刷时不要保持原色 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"

我想做的是改变按钮的颜色,如果是由用户按下。我需要红色/绿色。“开始”按钮为红色,如果按“更改绿色”,如果再次按,则返回红色。如果再按一次,绿色

我正试图找到类似的东西,但什么也找不到。 是否可以使用可拖动选择器进行此操作

这是我正在努力的,在完成印刷时不要保持原色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- green state -->
    <item
        android:drawable="@drawable/btn_selector_green"
        android:state_selected="true"></item>
    <!-- green state -->
    <item
        android:drawable="@drawable/btn_selector_green"
        android:state_pressed="true"></item>
    <!-- red state -->
    <item
        android:drawable="@drawable/btn_selecto_come_back"></item>

</selector>


提前感谢

当按下按钮时,其状态变为“状态\按下”。 但是,如果要使用按钮和选定状态,则必须通过代码将按钮的状态显式设置为“选定”,向按钮添加onClick Listener,并在onClick()中执行以下操作:


这将在每次按下按钮时切换所选状态。

为什么不按编程方式执行此操作

只需在onClickListener中使用一个简单的选择器

如果(单击=1)

按钮。setBackgroundResource(R.可绘制。绿色)

否则


按钮。setBackgroundResource(R.可绘制。红色)

您好,Franesco,无法通过选择器drawable执行此操作?您可以,但如果不使用按钮,请尝试查看ToggleButton并使用选中状态。这应该行得通。
button.setSelected(!button.isSelected());