我需要在单个TextView
上逐个显示数字(1-8),并且睡眠时间为1秒。这是我的代码
for(int i=0;i<9;i++){
TextView txt=(TextView)findViewById(R.id.txt);
txt.setText(String.valueOf(i));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:3)
使用Handler
或CountDownTimer
。不要在ui线程上调用sleep(param)
。这会阻止ui线程。从不阻止ui线程。
Handler
,它绑定到创建它的线程的线程/消息队列 - 从那时起,它将消息和runnables传递给该消息队列并在它们出来时执行它们消息队列。
http://developer.android.com/reference/android/os/Handler.html
关于CountDownTimer
http://developer.android.com/reference/android/os/CountDownTimer.html
你可以找到两个@
的例子答案 1 :(得分:0)
您可以尝试使用处理程序。
TextView txt=(TextView)findViewById(R.id.txt);
int i = 0;
Handler handler=new Handler();
handler.post(runnable);
Runnable runnable=new Runnable(){
@Override
public void run() {
txt.setText(String.valueOf(i));
handler.postDelayed(runnable, 1000);
i++;
if (i == 10)
{
handler.removeCallbacks(runnable);
}
}
};
希望它有所帮助。