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