我想使用一个代码来指示按钮的颜色(id = button1),如果颜色为蓝色则执行某些操作, 我的意思是=
如果button1的颜色为蓝色类型1,如果是绿色,黄色或其他颜色,请键入游戏结束。
我该怎么做?
我试过这种方式:
if(v.getId() == R.id.button1){
ColorDrawable buttonColor = (ColorDrawable) button1.getBackground();
int colorId = buttonColor.getColor();
}
出现错误:
Multiple markers at this line
- Type mismatch: cannot convert from ColorDrawable to int
- The method getColor() is undefined for the type
如果你将鼠标悬停在getColor()上,则会出现另一个错误:
The method getColor() is undefined for the type ColorDrawable
我该怎么办? THX。
答案 0 :(得分:1)
这是错误的做法。您永远不应该使用UI属性来确定程序状态,这样做会导致意大利面条代码。相反,您应该在代码中使用一个名称,这个名称意味着可以轻松理解跟踪按钮状态的内容。每当您更改按钮的颜色时,您都可以设置此变量。然后,当您需要根据颜色做出某些决定时,可以使用此变量。
答案 1 :(得分:0)
您也可以尝试将颜色值设置为
标签android:tag="#ff0000"
并从代码
访问它String colorCode = (String)btn.getTag();
或强>
Button button = (Button) findViewById(R.id.my_button);
Drawable buttonBackground = button.getBackground();