Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Java:每x秒更新一次TextView,无需用户输入_Java_Android - Fatal编程技术网

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

Android Java:每x秒更新一次TextView,无需用户输入,java,android,Java,Android,我正在用Android Java制作一个应用程序,使用Android Studio。 每隔0.1秒,我想更新某个文本视图中的文本 我已经设法使用处理程序每隔0.1秒100毫秒执行一个方法,但它不会自动更新TextView 它只会在用户与应用程序交互时将TextView更新为我想要的内容。它仅在用户滑动SeekBar或按下按钮时更新。它不会在用户点击屏幕时更新,也不会在没有输入的情况下自动更新 如何使其自动更新值,而无需用户输入 提前谢谢 附言:我不熟悉Android和Java,我正在使用线程从网

我正在用Android Java制作一个应用程序,使用Android Studio。 每隔0.1秒,我想更新某个文本视图中的文本

我已经设法使用处理程序每隔0.1秒100毫秒执行一个方法,但它不会自动更新TextView

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

如何使其自动更新值,而无需用户输入

提前谢谢

附言:我不熟悉Android和Java,我正在使用线程从网站上获取xml格式的值


我是否应该发布任何代码,如果是,具体是什么?

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

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

您也可以使用线程更新您的textview,如下所示。

是,请将代码放在此处以了解更多信息我是否必须将您编写的代码放在处理程序的Runnable中?那么这里,在Runnable的“public void run{..here..}”方法中?我试过这个,结果也一样,但我可能是错的。如果你在每0.1节之后调用该方法,那么就编写它吧谢谢,它现在运行得很好!但是我在哪里可以找到关于runOnUiThread的信息呢?如果我没有问未来可能出现的问题,我怎么会知道呢。因为我在Android文档网站上找不到它。谢谢您在UI中进行的更改不需要任何用户输入,只需要在UIthread上完成。尽管您需要在UI线程上执行最少的任务,因为这会使您的应用程序变慢。
 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();
 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();