我希望SetText
fixedRate
处理器发布延迟,但是我不能这样做,因为我得到的错误是我无法更改与主线程不同的线程中的文本。
我有一个静态文本存储在不同的类中,它会更改它,我想每100毫秒将TextView
的文本设置为此文本。
我该如何解决这个问题?
答案 0 :(得分:0)
在android中你应该只在UI线程上操纵UI元素。您可以使用asynctask,hander或runOnUiThread来实现此目的。后者是最简单的:
runOnUiThread(new Runnable() {
public void run() {
textview.setText("some text");
}
}
答案 1 :(得分:0)
安排计时器来执行任务..
private static class UpdateText extends TimerTask {
private final TextView tv;
public UpdateText(TextView tv) {
this.tv = tv;
}
@Override
public void run() {
tv.post(new Runnable() {
public void run() {
tv.setText(tv.getText() + "Append here");
}
});
}
在onCreate
执行此操作
tv.setText("Append here");
setContentView(tv);
Timer timing = new Timer();
timing.schedule(new UpdateText(tv), 3000, 3000);