2011-10-31 147 views
2

我想单击它时更改按钮的背景颜色。我的目标是颜色应该改变5秒,然后再改变为另一种颜色。更改Android应用程序中按钮的背景颜色

按钮的原始颜色是黄色。

下面是代码的一部分,我曾尝试:

public void click(View view){ 
    myTestButton = (Button)view; 
    myTestButton.setBackgroundColor(Color.BLUE); 
    //*Wait lines;* 
    myTestButton.setBackgroundColor(Color.RED); 
} 

按钮颜色变为红色,但从来没有蓝色。我怀疑这个视图直到后来才刷新。我希望在等待线之前刷新按钮。我也试过myTestButton.invalidate(),但无济于事。

在此先感谢一些伟大的提示!

+0

问题的一部分是该视图将在您运行的同一线程上刷新。所以它没有得到更新的机会,直到方法结束,此时按钮现在变为红色。 – Kratz

回答

2

你在“等待线”中使用什么?我猜这里有一个问题,因为你的可能不会导致你的UI线程在那里睡眠,并且这个方法(onClick)被你的UI线程调用。

我建议你使用方法View.postDelayed(Runnable action, long delayMills来做到这一点。 例子:

myTestButton.postDelayed(new Runnable() { 
    public void run() { 
     myTestButton.setBackgroundColor(Color.RED); 
    } 
} 

请注意,您在muest您的onClick方法声明为myTestButtonfinal

+0

谢谢!完美的帮助! – user1022419

+0

没问题:)如果解决了问题,请将其标记为“已接受”,以便将此问题标记为“已解决”。 – Jong

相关问题