Android - 带动态文本的TextView

时间:2014-08-24 10:24:01

标签: android timer

对于一个简单的计时器应用程序,我尝试在我的应用程序中添加一个TextView,其中包含"剩余15秒"显然这会每隔一秒更改一次,直到它最终更改为"时间到了!& #34 ;.我的想法是使用这样的循环:

while(now<endTime):
    remaining=endTime-now;
    text.setText(remaining);

虽然这可行,但我不确定这是否是正确的做法,或者是否有更好的选择。

2 个答案:

答案 0 :(得分:1)

改为使用CountDownTimer。

我使用此代码段来获得类似的结果:

    final int secs = 5;
    new CountDownTimer((secs +1) * 1000, 1000) // Wait 5 secs, tick every 1 sec
    {
        @Override
        public final void onTick(final long millisUntilFinished)
        {
            txtCount.setText("" + (int) (millisUntilFinished * .001f));
        }
        @Override
        public final void onFinish()
        {
            txtCount.setText("GO!");
        }
    }.start();

在onFinish()处理程序中,您可以执行“经过时间”的事情

答案 1 :(得分:1)

您可以使用处理程序执行以下操作:

Handler myHandler=new Handler();
    myHandler.postDelayed(timer, 1000);

    private Runnable timer= new Runnable() {
    public void run() {
    if(counter==15){
      textview.setText("Time Up");
      counter=0;
    }
    else{
        counter++;
        textview.setText(counter+ " remaining");}
        }
    };