gpt4 book ai didi

Android- 使用线程更新 UI 元素

转载 作者:行者123 更新时间:2023-11-30 02:07:07 27 4
gpt4 key购买 nike

我有一个 TextView ,我想用线程更改它并一次又一次地执行它(就像数字时钟)。但是我在设置两次更改之间的时间时遇到了问题。在这里,代码:

display1 = (TextView) findViewById(R.id.textView1);

Thread timer2 = new Thread(){
@Override
public void run() {
synchronized (this){

runOnUiThread(new Runnable() {
@Override
public void run() {
int i = 0;
display1.setText("" + i);
try {
sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
display1.setText("" + (i+1));
}
});
}
}
};

timer2.start();

这个 sleep (2000);函数使 textview 在给定时间内不可见,但我希望它在下一次更改之前保持静止。我该怎么做?

最佳答案

But i'm having problems with setting time between 2 changes

不要在您的 UI 线程上执行 sleep()。如果你想用延迟链接一些 Action ,把你的代码分成两个可运行的,第一个应该设置 display1 ,然后使用 postDelayed() 发布第二个带有延迟的可运行的。

编辑

want one of them to increase 3 per sec, and the other 5 per sec until they reach 1000 for instance

您可以让您的 Runnable 发布自己,直到满足某些条件(即时间、计数器值等)。在你的 Runnable 结束时检查你的条件,如果不满足,调用 postDelayed(this, delay); 就可以了。

关于Android- 使用线程更新 UI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30531290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com