我想将按钮背景从红色更改为橙​​色,最后更改为绿色。
到目前为止,我可以更改为橙色。
但是背景不能变为绿色。
这里的代码

Button change = (Button) findViewById(R.id.btn_change);
change.setBackgroundResource(R.drawable.button_red);

...

change.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
        v.setBackgroundResource(R.drawable.button_orange);
        try {
            Thread.sleep(5000, 0);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        v.setBackgroundResource(R.drawable.button_green);
    }
});

最佳答案

在Android中使用Thread.sleep()是非常不好的做法,尤其是在Main UI Thread上。请改用计时器或发布可运行对象(请参见下文)。

change.setOnClickListener(new Button.OnClickListener() {
    public void onClick(final View v) {
        v.setBackgroundResource(R.drawable.button_orange);
        Handler handle = new Handler(); // Probably shouldn't create one each time, but here is the idea
        handle.postDelayed(new Runnable() {
            @Override
            public void run() {
                v.setBackgroundResource(R.drawable.button_green);
            }
        }, 5000);
    }
});

关于java - 如何两次更改android按钮背景?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30221882/

10-11 03:42