这个可以改变按钮颜色:
myButton.setBackgroundResource(R.drawable.button_grey);
这并不
int myColor = R.drawable.button_grey;
myButton.setBackgroundResource(myColor);
按钮没有任何颜色。为什么?如何解决?
尝试这种方式,它会起作用的。
counter = 1;
//By Default set color
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (counter == 1)
{
// Default color
counter = 2;
}
else
{
//your color
counter = 1;
}
}
});
Drawable d = getResources().getDrawable(R.drawable.button_grey);
myButton.setBackgroundDrawable(d);
myButton.setBackgroundColor(Color.parseColor("red"));
// or
myButton.setBackgroundColor(Color.RED);
// or
myButton.setBackgroundColor(Color.rgb(int,int,int);
可能是新手的错误,但似乎您需要将要分配资源的变量声明为static
变量,即static int
,如果您想将其用作类的属性(请参见下面的注释)。
int myColor = R.drawable.button_grey;
myButton.setBackgroundResource(getResources().getdrawable(mycolor));
Button
类以添加自己的方法。我没有意识到如果你将myColor
设置为类的属性,它必须被定义为static
。没有static
它就不会渲染。一直在学习! - James B