gpt4 book ai didi

java - 如何每 5 秒在值之间切换 TextView

转载 作者:行者123 更新时间:2023-11-29 23:07:54 26 4
gpt4 key购买 nike

我不知道使用 Threads 是否是我想要实现的实践,所以请随意修改您希望的代码。

我正在尝试在我的应用程序中实现一项功能,其中 TextView 切换到 1 个值,此后每 5 秒恢复到初始值。我在一个线程上实现了以下使用:

    layoutDate.setText(firstNumber);

Thread numberSwitch = new Thread() {
@Override
public void run() {
while(!isInterrupted()) {
try {

Thread.sleep(5000);

runOnUiThread(new Runnable () {
@Override
public void run() {

layoutDate.setText(secondNumber);

}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};

numberSwitch.start();

我尝试在 runUiOnThread 之后以及嵌套的 run 之后添加 layoutDate.setText(firstNumber) 但它仍然没有按照我的意愿工作。

我想实现如下目标:

Example

最佳答案

您可以将处理程序与可运行对象一起使用。

private TextView textView;
private Handler handler;

在你的onCreate()

textView = findViewById(R.id.tv_bt_msg);
textView.setText("secondNumber");

handler = new Handler();
//Change the textview after 5 seconds
handler.postDelayed(runnable, 5000);

可运行以每 5 秒更改一次文本

private Runnable runnable = new Runnable() {
@Override
public void run() {
String currentString = textView.getText().toString();
if(currentString.equals("secondNumber")){
currentString = "firstNumber";
}else{
currentString = "secondNumber";
}
final String tempString = currentString;
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(tempString);
}
});
//Change the textview again after 5 seconds
handler.postDelayed(runnable, 5000);
}
};

用它来移除回调

handler.removeCallbacks(runnable);

关于java - 如何每 5 秒在值之间切换 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341089/

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