Android Studio编辑文本更新

Android Studio编辑文本更新,android,Android,我是Android的初学者 我做了一个简单的代码,我想在文本视图中显示hello 1,hello 2…hello 5的序列,步骤为1秒。但是,每次只有最后一个hello 5出现。有人能帮我修改代码,在文本视图中显示所有中间词,从hello 1到hello 5暂停1秒,相互改变 提前谢谢你 View.OnClickListener onClickListener_button1 = new View.OnClickListener() { @Override pub

我是Android的初学者

我做了一个简单的代码,我想在文本视图中显示hello 1,hello 2…hello 5的序列,步骤为1秒。但是,每次只有最后一个hello 5出现。有人能帮我修改代码,在文本视图中显示所有中间词,从hello 1到hello 5暂停1秒,相互改变

提前谢谢你

View.OnClickListener onClickListener_button1 = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for(int i=1; i<= 5; i++){
                textView.setText("hello " + i);

                try{Thread.sleep(1000);
                } catch(Exception e){
                }
            }
}

代码实际上正在运行,并将字段的内容从:hello 1更改为hello 2,再更改为hello 3等。您只有在UI未更新时才有机会看到它

代码的问题是您使用了Thread.Sleep,这将阻止UI线程,因此当UI不再冻结时,只会显示最后的hello 5

看看这篇文章,可以找到另一种选择:


代码实际上正在运行,并将字段的内容从:hello 1更改为hello 2,再更改为hello 3等。您只有在UI未更新时才有机会看到它

代码的问题是您使用了Thread.Sleep,这将阻止UI线程,因此当UI不再冻结时,只会显示最后的hello 5

看看这篇文章,可以找到另一种选择:

使用此代码:

for (int i=1; i<6; i++) {
   final Handler handler = new Handler();
   handler.postDelayed(new Runnable() {
     @Override
     public void run() {
       textView.setText("hello " + i);
     }
   }, 1000);
}
希望它能正常工作。

使用以下代码:

for (int i=1; i<6; i++) {
   final Handler handler = new Handler();
   handler.postDelayed(new Runnable() {
     @Override
     public void run() {
       textView.setText("hello " + i);
     }
   }, 1000);
}
希望它能合乎逻辑地工作