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

时间:2016-12-27 16:58:03

标签: android xml drawable

我想要做的是如果被用户按下则更改按钮的颜色。我需要说明红色/绿色。按钮开始为红色,如果按下更改绿色,如果再次按下则返回红色。如果再次按,绿色....

我试图找到类似的东西,但我找不到任何东西。 是否可以使用drawable选择器?

这是我尝试完成新闻时不会保持颜色

<?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>

提前致谢

2 个答案:

答案 0 :(得分:1)

按下按钮时,其状态变为&#34; state_pressed&#34;。 但是对于state_selected不会发生这种情况,如果要使用Button和所选状态,则必须通过代码显式设置Button的状态,在按钮上添加onClickListener,并在onClick()内部执行:

button.setSelected(!button.isSelected());

每次按下按钮时,都会切换所选状态。

答案 1 :(得分:0)

你为什么不这样做?

只需在onClickListener

中使用一个简单的选择器

如果(点击= 1)

button.setBackgroundResource(R.drawable.green);

否则

button.setBackgroundResource(R.drawable.red);