java - 更改 Android 应用程序中按钮的背景颜色

标签 java android android-activity

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

按钮的原始颜色是黄色。

这是我试过的部分代码:

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

按钮将颜色变为红色,但不会变为蓝色。我怀疑该 View 直到稍后才刷新。我希望在等待行之前刷新按钮。 我也尝试过 myTestButton.invalidate() 但无济于事。

在此先感谢您提供的一些重要提示!!

最佳答案

您在“等待队列”中使用什么?我猜那里有问题,因为您可能不会让您的 UI 线程在那里 hibernate ,并且此方法 (onClick) 由您的 UI 线程调用。

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

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

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

关于java - 更改 Android 应用程序中按钮的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957494/

相关文章:

java - JDBC嵌入式Derby : No suitable driver found

java - BufferedReader 将文本文件设置为空

android - 如何在 Android 中保存以编程方式创建的 TextView

Android - 将 Activity 和小部件绑定(bind)到服务

android - FragmentManager.put/getFragment 与 findFragmentByTag

android - 如何在 Android N 中允许多窗口功能 Activity 明智?

java - App Engine 端点警告

java - 与 while 循环相关的变量声明的位置

android - 安卓报警应用

android - 如何处理 libGDX 中的不同纵横比?