我是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
}
我不知道如何获取按钮的当前颜色。请帮忙,谢谢!
答案 0 :(得分:1)
在您的活动中,声明这些字段
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;
}
}
答案 1 :(得分:1)
试试这个..
public void onClick(View view) {
ColorDrawable buttonColor = (ColorDrawable) view.getBackground();
int colorId = buttonColor.getColor();
if (colorId==Color.GREEN) {
view.setBackgroundColor(Color.RED);
}
}
答案 2 :(得分:0)
更好的方法是,使用LevelListDrawables可以使用getBackground()来检查背景的级别并根据它进行更改。