[英]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.