设置按钮颜色

3

这个可以改变按钮颜色:

myButton.setBackgroundResource(R.drawable.button_grey);

这并不

int myColor = R.drawable.button_grey;
myButton.setBackgroundResource(myColor);

按钮没有任何颜色。为什么?如何解决?


你的日志是什么?我已经把所有东西都完美地运行了。 - Lia Pronina
这很奇怪。什么都没有。可绘制对象就是无法渲染。 - James B
1
好的,我解决了(这可能很愚蠢,但我是个新手)。我想将资源分配给一个变量,因为我正在扩展Button类以添加自己的方法。我没有意识到如果你将myColor设置为类的属性,它必须被定义为static。没有static它就不会渲染。一直在学习! - James B
请不要在回答中添加问题的解决方案并发布一个回答,说“问题已经解决,请看原始帖子”。请将您的解决方案作为答案发布,并将其标记为已接受答案。 - Adi Inbar
5个回答

0

尝试这种方式,它会起作用的。

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;
                }
            }
        });

0
请使用以下代码行:
Drawable d = getResources().getDrawable(R.drawable.button_grey);
myButton.setBackgroundDrawable(d);

希望这能对你有所帮助 :)

0
myButton.setBackgroundColor(Color.parseColor("red"));
// or
myButton.setBackgroundColor(Color.RED);
// or
myButton.setBackgroundColor(Color.rgb(int,int,int);

1
谢谢Mike,但我想设置资源而不仅仅是颜色。 - James B

0

可能是新手的错误,但似乎您需要将要分配资源的变量声明为static变量,即static int,如果您想将其用作类的属性(请参见下面的注释)。


1
我已经将问题的解决方案移动到答案中了。请将其标记为被接受的答案。 - Adi Inbar

-1
int myColor = R.drawable.button_grey;
myButton.setBackgroundResource(getResources().getdrawable(mycolor));

不行。我的IDE出现了一个错误,说无法将视图应用于图形可绘制对象? :( - James B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接