SetText以固定费率

时间:2012-03-26 15:56:47

标签: android multithreading textview

我希望SetText fixedRate处理器发布延迟,但是我不能这样做,因为我得到的错误是我无法更改与主线程不同的线程中的文本。

我有一个静态文本存储在不同的类中,它会更改它,我想每100毫秒将TextView的文本设置为此文本。

我该如何解决这个问题?

2 个答案:

答案 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);