[英]I need someone to explain for me this java code
我正在为我的大学解决一个练习,我的 pdf 中有这段代码,我应该用它来延迟按钮上文本颜色的更改,我不明白它究竟是如何工作的,所以请有人解释一下它
HandlerThread handlerThread = new HandlerThread("showText");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
Runnable runnable = new Runnable() {
int i = 0;
@Override
public void run() {
i++;
handler.postDelayed(this, 1000);
if (i > 1)
button.setTextColor(getResources().getColor(android.R.color.transparent));
}
};
handler.post(runnable);
这段代码以一种晦涩的方式导致 Runnable 以 1 秒(每秒)的延迟被调用,因为它每次都重新调度自己。 int i
正在保护button.setTextColor
不执行第一个。
但是这段代码很乱,应该这样做的方法如下:
Runnable runnable = new Runnable() {
@Override
public void run() {
button.setTextColor(getResources().getColor(android.R.color.transparent));
}
};
handler.postDelayed(runnable, 1000);
或使用 lambda 表达式,如下所示:
handler.postDelayed(() -> button.setTextColor(getResources().getColor(android.R.color.transparent)), 1000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.