首页 > 解决方案 > 如何在textview中延迟打印数组元素

问题描述

我试图在同一个文本视图中一个一个地打印字符串数组的所有元素,每个元素之间有 1 秒的延迟,但唯一打印的是最后一个元素。

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
    private TextView tv2;
    private String []numbers={"1","2","3","4","5"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv2=findViewById(R.id.tv2);
    }

    public void initiate(View view){

        for (int i = 0; i < numbers.length; i++){
                    tv2.setText(numbers[i]);
                    tv2.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            tv2.setText("");
                        }
                    },1000);
        }
    }
}

标签: javaandroidtextview

解决方案


尝试这个

更新

public void initiate(View view){
     int i = 0;
     new CountDownTimer((number.lenght*10000),1000){

                           @SuppressLint("SetTextI18n")
                           @Override
                           public void onTick(long millisUntilFinished) {
                                if(i<numbers.length)
                                   tv2.setText(numbers[i++]);
                           }

                           @Override
                            public void onFinish() {
                           
                            }
                      }.start();
}

推荐阅读