Java 在Android应用程序中更改按钮的背景色

Java 在Android应用程序中更改按钮的背景色,java,android,android-activity,Java,Android,Android Activity,我想在单击按钮时更改其背景色。我的目标是将颜色更改5秒钟,然后再次更改为另一种颜色 按钮的原始颜色为黄色 以下是我尝试过的代码的一部分: public void click(View view){ myTestButton = (Button)view; myTestButton.setBackgroundColor(Color.BLUE); //*Wait lines;* myTestButton.setBackgroundColor(Color.RED); } 按钮将颜色更

我想在单击按钮时更改其背景色。我的目标是将颜色更改5秒钟,然后再次更改为另一种颜色

按钮的原始颜色为黄色

以下是我尝试过的代码的一部分:

public void click(View view){
  myTestButton = (Button)view;
  myTestButton.setBackgroundColor(Color.BLUE);
  //*Wait lines;*
  myTestButton.setBackgroundColor(Color.RED);
}
按钮将颜色更改为红色,但从不更改为蓝色。我怀疑视图直到稍后才会刷新。我想在排队等候之前刷新按钮。 我还尝试了
myTestButton.invalidate()
,但没有成功


提前感谢你提供了一些关于这方面的好建议

您在“等待队列”中使用了什么?我想这里有一个问题,因为可能不会导致UI线程在那里休眠,而此方法(onClick)由UI线程调用。

我建议您使用方法
View.postDelayed(Runnable action,long delayMills
来实现这一点。 例如:


请注意,在onClick方法中,您最好将
myTestButton
声明为
final

部分问题是视图将在与您运行的线程相同的线程上刷新。因此,在方法结束之前,它没有机会更新,此时按钮现在是红色的。没有问题:)如果它解决了问题,将其标记为“已接受”,以便将此问题标记为“已解决”。
myTestButton.postDelayed(new Runnable() {
    public void run() {
        myTestButton.setBackgroundColor(Color.RED);
    }
}