Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 按顺序重复更改文本视图的文本_Android_Textview - Fatal编程技术网

Android 按顺序重复更改文本视图的文本

Android 按顺序重复更改文本视图的文本,android,textview,Android,Textview,我有三根弦 String one="Connecting."; String two="Connecting.."; String three="Connecting..."; 我有一个textView,我想要的是按此顺序将文本设置为textView。。 一-->二-->三-->一-->二-->三,依此类推,直到该过程完成 我已经在基于值的for循环中完成了它,即 if(value%3==0){ tx.setText(one);

我有三根弦

String one="Connecting.";
String two="Connecting..";
String three="Connecting...";
我有一个textView,我想要的是按此顺序将文本设置为textView。。 一-->二-->三-->一-->二-->三,依此类推,直到该过程完成

我已经在基于值的for循环中完成了它,即

if(value%3==0){
                            tx.setText(one);
                        }
                        else if(value%3==1){
                            tx.setText(two);
                        }
                        else
                        {
                            tx.setText(three);
                        }

This is done inside a thread and it is working well.
但我不想依赖“价值”。。我不希望在这个过程完成之前,按照上面提到的顺序修改文本。 我知道这是含糊不清的,但我不知道如何做到这一点。 如果有人能给点提示,请告诉我

    code:


 public void startProgress(View view) {

        bar.setProgress(0);
        tx.setText("Connect");
        new Thread(new Task()).start();
    }

    class Task implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i <= 10; i++) {
                final int value = i;
                try {
                    Thread.sleep(500);
                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            bar.setProgress(value);

                        String one="Connecting.";
                        String two="Connecting..";
                        String three="Connecting...";


                        if(value%3==0){
                            tx.setText(one);
                        }
                        else if(value%3==1){
                            tx.setText(two);
                        }
                        else
                        {
                            tx.setText(three);
                        }


                        }
                    });


                } catch (InterruptedException e) {
                    e.printStackTrace();
                }



            }
        }

    }
代码:
public void startProgress(视图){
进度条(0);
tx.setText(“连接”);
新线程(新任务()).start();
}
类任务实现可运行{
@凌驾
公开募捐{

对于(int i=0;i来说,有一个像
value
这样的计数器保持递增是有意义的。但是您可以简单一点:

String[] texts = new String[3] {"Connecting.", "Connecting..", "Connecting..."};
int value = 0;

// ...

tx.setText(texts[value]);
value = (value+1)%3;

这样,您就不需要使用凌乱的
if
语句。您需要找到另一种方法,在任务完成时通知线程,而不是只进行固定的迭代次数。

使用TextSwitcher而不是TextView…它会起作用。

您使用的是计时器吗!请参阅已编辑的代码。我没有使用计时器。为什么不使用进度巴,看这个例子