Android TextView - 逐帧显示最后一个数字的显示数字

时间:2014-06-13 10:04:54

标签: android textview

我需要在单个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();
        }
    }

2 个答案:

答案 0 :(得分:3)

使用HandlerCountDownTimer。不要在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

你可以找到两个@

的例子

Android Thread for a timer

答案 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);
        }
    }  
};  

希望它有所帮助。