我想在单击按钮时更改其背景颜色。我的目标是将颜色更改5秒钟,然后再次更改为另一种颜色。
按钮的原始颜色为黄色。
这是我尝试过的部分代码:
public void click(View view){
myTestButton = (Button)view;
myTestButton.setBackgroundColor(Color.BLUE);
//*Wait lines;*
myTestButton.setBackgroundColor(Color.RED);
}
该按钮将颜色更改为红色,但从不更改为蓝色。我怀疑该视图直到稍后才刷新。我希望在等待行之前刷新按钮。
我也尝试过
myTestButton.invalidate()
,但无济于事。在此先感谢一些很棒的提示!!
最佳答案
您在“等待线”中使用什么?我猜那里是一个问题,因为您可能不会使UI线程在那里休眠,并且UI线程调用了此方法(onClick)。
我建议您使用方法View.postDelayed(Runnable action, long delayMills
来做到这一点。
例:
myTestButton.postDelayed(new Runnable() {
public void run() {
myTestButton.setBackgroundColor(Color.RED);
}
}
请注意,您必须在onClick方法中将
myTestButton
声明为final
。