Android Java:每隔x秒更新一次TextView,无需用户输入

时间:2017-06-13 12:27:58

标签: java android

我正在使用Android Studio在Android Java中制作应用。 每0.1秒我想更新某个TextView中的文本。

我已经设法使用Handler每0.1秒(100毫秒)执行一次方法,但它不会自动更新TextView。

它仅在用户与应用程序交互时将TextView更新为我想要的内容。例如,当用户滑动SeekBar或按下按钮时,它仅更新它。当用户点击屏幕时,它不会更新,也不会在没有输入的情况下自动更新。

如何在没有用户输入的情况下自动更新值?

提前致谢。

P.S:我是Android和Java的新手,我使用线程以xml格式从网站获取价值。

我应该发布任何代码,如果是,那究竟是什么?

3 个答案:

答案 0 :(得分:1)

您可以尝试更新UI线程上的文本视图的值。

 runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //update TextView here
        }
    });

答案 1 :(得分:1)

Thread t = new Thread() {
        @Override
        public void run() {
            try {
                while (!isInterrupted()) {
                    Thread.sleep(100);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            // update TextView here!
                        }
                    });
                }
            } catch (InterruptedException e) {
            }
        }
    };

    t.start();

您也可以使用线程更新textview,就像这样。

答案 2 :(得分:0)

 int prStatus = 0;
 new Thread(new Runnable() {
        public void run() {
            while (prStatus < 100) {
                prStatus += 1;
                handler.post(new Runnable() {
                    public void run() {
                        tv.setText(prStatus + "/");
                    }
                });
                try {
                    Thread.sleep(150);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                if(prStatus == 100)
                    prStatus = 0;
            }
        }
    }).start();