我想在每次单击按钮时更改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
。有什么方法可以解决这个问题吗?任何帮助,将不胜感激。谢谢!
答案 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
方法的变化。