[英]A button that toggles its own background-color
我是android的新手,所以这个问题可能看起来非常棒。 我的目标是点击一个按钮,如果它当前为绿色,则将其自己的背景颜色更改为红色,如果当前为红色则更改为蓝色,如果为蓝色则更改为绿色。
我有一个按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="50dp"
android:onClick="toggleColor"
android:text="@string/foo" />
在MainActivity中,我有:
public void onClickCard(View view) {
if (view.getBGColor == green) {
view.setBGColor(red);
}
// ...so on
}
我不知道如何获得我的按钮的当前颜色。 请帮忙,谢谢!
在您的活动中,声明这些字段,
private enum ColorCodes {
RED,
GREEN,
BLUE,
YELLOW
}
//我假设你的xml中默认有红色
private ColorCodes colorCodes = ColorCodes.RED;
然后做这样的事情:
public void onClickCard(View view) {
switch (colorCodes) {
case RED:
view.setBackgroundResource(blue);
colorCodes = ColorCodes.BLUE;
break;
case GREEN:
view.setBackgroundResource(yellow);
colorCodes = ColorCodes.YELLOW;
break;
case BLUE:
view.setBackgroundResource(red);
colorCodes = ColorCodes.RED;
break;
case YELLOW:
view.setBackgroundResource(green);
colorCodes = ColorCodes.GREEN;
break;
}
}
尝试这个..
public void onClick(View view) {
ColorDrawable buttonColor = (ColorDrawable) view.getBackground();
int colorId = buttonColor.getColor();
if (colorId==Color.GREEN) {
view.setBackgroundColor(Color.RED);
}
}
更好的方法是使用LevelListDrawables,你可以使用getBackground()来检查背景的级别并根据它进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.