0

我正在编写一个 android 应用程序,要求我在再次更改之前将图像按钮的前景保持一秒钟。所以我编写了下面的代码(它用于更改其他项目中两个按钮上的文本颜色)并且我知道问题是我正在更改非主线程中的 UI 元素并且我知道我不能使用“runOnUiThread”方法,但在我当前的函数中找不到这样做的方法,所以如果有人可以帮助我,请感谢。

public void waitTime(ImageButton imageButton1, ImageButton imageButton2) {
    HandlerThread handlerThread = new HandlerThread("showText");
    handlerThread.start();
    Handler handler = new Handler(handlerThread.getLooper());
    Runnable runnable = () -> {
        imageButton1.setForeground(AppCompatResources.getDrawable(this, R.color.teal_200));
        imageButton2.setForeground(AppCompatResources.getDrawable(this, R.color.teal_200));
    };
    handler.postDelayed(runnable, 1000);
}
4

1 回答 1

0

您可以使用 View 的postDelayed方法:

Runnable runnable = () -> {
        imageButton1.setForeground(AppCompatResources.getDrawable(this, R.color.teal_200));
        imageButton2.setForeground(AppCompatResources.getDrawable(this, R.color.teal_200));
    };
imageButton1.postDelayed(runnable, 1000);

它将在主线程中更新 UI。

于 2022-01-18T21:16:10.610 回答