我不知道使用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();
我曾尝试加入layoutDate.setText(firstNumber)
刚过runUiOnThread
后还嵌套run
但我希望它仍然无法正常工作。
我想要实现以下目标:
您可以将Handler与可运行对象一起使用。
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句