Java 在Android应用程序中更改按钮的背景色
我想在单击按钮时更改其背景色。我的目标是将颜色更改5秒钟,然后再次更改为另一种颜色 按钮的原始颜色为黄色 以下是我尝试过的代码的一部分: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); } 按钮将颜色更
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);
}
}