如何在onClick上更改Android按钮颜色?

时间:2016-05-19 07:45:48

标签: java android android-layout button onclick

我想在每次单击按钮时更改android按钮颜色。一旦用户点击一个按钮,我想要它以便颜色改变。然后,再次按下该按钮时,颜色将恢复为之前的状态。这是我的尝试:

private void setupFollowButton(Button button, final Boolean isClicked) {
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Boolean isClickedDummy = !isClicked;
            if(isClickedDummy) {
                v.setBackgroundColor(Color.parseColor("#FF0000"));
            } else {
                v.setBackgroundColor(Color.parseColor("#FFFFFF"));
            }
        }
    });
}

最初我想要它isClicked = !isClicked以便我确定isClicked变量已经改变,我可以改变颜色。但是,我上面的方法只会将isClicked更改为false,而我似乎无法将其更改回true。有什么方法可以解决这个问题吗?任何帮助,将不胜感激。谢谢!

4 个答案:

答案 0 :(得分:1)

你可以xml drawable:

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

selector_xml_name.xml

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

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector

答案 1 :(得分:0)

试试这个:

sqlalchemy.ext.mutable

答案 2 :(得分:0)

你必须改变&#34; isClickedDummy&#34;的值。你必须把它当作全球使用。

{{1}}

答案 3 :(得分:0)

如果要更改背景颜色,请不要忘记删除按钮的BackgroundResource

即,使用:

btn.setBackgroundResource(0);

之后,&#39;通常的按钮布局&#39;将消失,我将显示setBackground方法的变化。